Java URLConnection: Proxy setzen, ohne die URL zu ändern
Vermeiden Sie es, den Proxy als Webserver anzusprechen, und übergeben Sie die Route als separate Java-Verbindungsoption.
Behalten Sie die echte Ressourcen-URL und übergeben Sie den Proxy separat an URLConnection:
URI destination = URI.create("https://example.com/report");
Proxy proxy = new Proxy(Proxy.Type.HTTP,
new InetSocketAddress("203.0.113.10", 8080));
URLConnection connection = destination.toURL().openConnection(proxy);
connection.setConnectTimeout(5000);
connection.setReadTimeout(10000);Verwenden Sie die java.net-Importe und ersetzen Sie die Proxy-Adresse aus der Dokumentation durch Ihren HTTP-Dienst oder einen Kandidaten aus der HTTP-Proxy-Liste. Die Verbindung fordert weiterhin https://example.com/report an; der Proxy ist ihre Route. Diese Einrichtung konfiguriert weder Anmeldedaten noch jede HTTP-Bibliothek in der JVM.
Falscher Code, der den Proxy in die Ressourcen-URL einsetzt, kann statt des Berichts eine schnelle Proxy-Webseite oder einen Fehler erhalten. Vergleichen Sie Status, Inhalt und tatsächliches Ziel, bevor Sie die schnelle Antwort als bessere Leistung deuten.
openConnection(Proxy) belässt den Ressourcenpfad auf der Ziel-URI. Behalten Sie diesen Hostnamen auch für die HTTPS-Zertifikatsprüfung; eine Änderung auf den Vermittler kann eine Namensabweichung zum Routingfehler hinzufügen.
Wenn die Anwendung einen anderen HTTP-Client aufbaut, verwenden Sie diesen Client oder seine Connection-Factory-Schnittstelle. Ein URLConnection-Proxyobjekt kann keinen Pfad konfigurieren, der diese API nie aufruft.