HTTP proxy bat erabiltzea Java HttpClient-en
Eman ProxySelector bat Javaren HTTP bezero-eraikitzaileari, eta bereizi konexioaren eta eskaeraren denbora-mugak.
Java 11n edo ondorengoetan, ezarri ProxySelector bezero-eraikitzailean. JVM osoaren proxy-propietateak ukitu gabe geratzen dira horrela:
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());
}
}Ordezkatu dokumentazioko muturra zure HTTP proxyarekin; HTTP proxyen zerrendak probatzeko hautagaiak ditu. ProxySelector.of metodoak socket-helbidea hartzen du: erabili ostalaria http:// aurrizkirik gabe eta eman ataka bereizita. HTTP proxy bat aukeratzen du, ez SOCKS ataka-zenbakiaren arabera. Eskaeraren URIa benetako helmuga izaten jarraitzen du.
HTTPS HTTP proxy honetatik igaro daiteke tunel baten bidez. Ez da helmugaren babesa jaitsi behar, eta konfigurazioak ez du esan nahi proxyaren entzuleak berak TLS onartzen duenik.
Bezero-eraikitzailearen konexio-denbora muga konexioa ezartzean aplikatzen da; eskaerak bere muga du. Utzi biak argi, eskaerak lehendik dagoen konexio bat berrerabil baitezake. Sareko, autentifikazioko edo tuneleko salbuespena helmugaren erantzunik baino lehen gerta daiteke; itzulitako errore-egoerak, ordea, ez du zertan salbuespenik jaurti.
Berrerabili bezeroa bideratze-politika bera duten eskaeretan, aplikazioak haren konexio-kudeaketari etekina atera diezaion.