Uża proxy HTTP f’Java HttpClient
Għaddi ProxySelector lill-builder tal-klijent HTTP ta’ Java u żomm separati t-timeouts tal-konnessjoni u tat-talba.
Għal Java 11 jew aktar ġdid, issettja ProxySelector fuq il-builder tal-klijent. Dan iħalli l-proprjetajiet tal-proxy għall-JVM kollha bla bidla:
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());
}
}Ibdel l-endpoint tad-dokumentazzjoni bil-proxy HTTP tiegħek; il-lista ta’ proxies HTTP tipprovdi kandidati għall-ittestjar. ProxySelector.of jieħu indirizz socket: uża l-host mingħajr prefiss http:// u agħti l-port separatament. Jagħżel proxy HTTP, mhux SOCKS skont in-numru tal-port. L-URI tat-talba jibqa’ d-destinazzjoni vera.
HTTPS jista’ jgħaddi minn dan il-proxy HTTP b’tunnell. M’hemmx bżonn tnaqqas is-sigurtà tad-destinazzjoni u s-setup ma jimplikax li l-listener tal-proxy nnifsu jappoġġa TLS.
It-timeout tal-konnessjoni fil-builder japplika meta tiġi stabbilita konnessjoni; it-talba għandha t-timeout tagħha. Żomm it-tnejn ċari għax talba tista’ terġa’ tuża konnessjoni eżistenti. Eċċezzjoni tan-network, tal-awtentikazzjoni jew tat-tunnell tista’ sseħħ qabel kwalunkwe risposta mid-destinazzjoni, filwaqt li status ta’ żball irritornat mhux bilfors iqajjem eċċezzjoni.
Erġa’ uża l-klijent għal talbiet bl-istess politika tar-routing biex l-applikazzjoni tibbenefika mill-ġestjoni tal-konnessjonijiet tiegħu.