Brúka ein HTTP-proxy í Java HttpClient
Gev Java HTTP-klientbyggjaranum ein ProxySelector og halt tíðarfreistir fyri samband og umbøn hvør sær.
Í Java 11 ella nýggjari setur tú ein ProxySelector á klientbyggjaran. Proxyeginleikar fyri alla JVM verða tá ikki broyttir:
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());
}
}Skift endapunktið í skjalfestingini út við tín HTTP-proxy; HTTP-proxy-listin gevur kandidatar at royna. ProxySelector.of tekur eina socketadressu: brúka vertin uttan http://-forskeyti og gev portið fyri seg. Tað velur ein HTTP-proxy, ikki SOCKS út frá portnummarinum. URI hjá umbønini er framvegis veruliga málið.
HTTPS kann fara gjøgnum henda HTTP-proxy gjøgnum ein tunnil. Trygdin hjá málinum skal ikki lækkast, og uppsetingin merkir ikki, at sjálvur proxy-lurtarin stuðlar TLS.
Tíðarfreistin fyri samband á klientbyggjaranum er galdandi, tá samband verður stovnað; umbønin hevur sína egnu freist. Halt báðar sjónligar, tí ein umbøn kann endurnýta eitt samband, sum longu er til. Eitt net-, innritingar- ella tunnilundantak kann koma áðrenn nakað svar frá málinum, meðan ein afturborin feilstatusur ikki noyðist at geva eitt undantak.
Endurnýt klientin til umbønir við somu leiðarreglum, so forritið fær gagn av hansara sambandsstýring.