En HTTP-Proxy am Java HttpClient benotzen
Gitt dem HTTP-Client-Builder vu Java e ProxySelector an haalt Verbindungs- an Ufro-Timeout getrennt.
A Java 11 oder méi nei setzt Dir e ProxySelector um Client-Builder. D’Proxy-Eegeschafte fir déi ganz JVM bleiwen esou onverännert:
import java.net.InetSocketAddress;
import java.net.ProxySelector;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
public class ProxyExample {
public static void main(String[] args) throws Exception {
HttpClient client = HttpClient.newBuilder()
.proxy(ProxySelector.of(
new InetSocketAddress("203.0.113.10", 8080)))
.connectTimeout(Duration.ofSeconds(5))
.build();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://example.com/"))
.timeout(Duration.ofSeconds(15))
.GET()
.build();
HttpResponse<String> response = client.send(
request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.statusCode());
System.out.println(response.body());
}
}Ersetzt den Dokumentatiounsendpunkt duerch Ären HTTP-Proxy; d’HTTP-Proxy-Lëscht bitt Kandidaten zum Testen. ProxySelector.of hëlt eng Socket-Adress: benotzt den Host ouni http://-Prefix a gitt de Port separat un. Et wielt en HTTP-Proxy, net SOCKS op Basis vun der Portnummer. D’URI vun der Ufro bleift dat richtegt Zil.
HTTPS kann dësen HTTP-Proxy iwwer en Tunnel passéieren. D’Sécherheet vum Zil muss net erofgesat ginn, an d’Astellung bedeit net, datt de Proxy-Listener selwer TLS ënnerstëtzt.
De Verbindungs-Timeout vum Client-Builder gëllt beim Opbau vun enger Verbindung; d’Ufro huet hiren eegenen Timeout. Haalt béid kloer, well eng Ufro eng besteeënd Verbindung weiderbenotze kann. Eng Netzwierk-, Authentifikatiouns- oder Tunnel-Ausnam ka virun all Ziläntwert optrieden, wärend en zeréckginnene Feelerstatus net onbedéngt eng Ausnam ausléist.
Benotzt de Client fir Ufroe mat därselwechter Routing-Politik weider, fir datt d’Applikatioun vu senger Verbindungsverwaltung profitéiert.