Í Java 11 eða nýrra stillirðu ProxySelector á biðlarasmiðnum. Staðgengilseiginleikar allrar JVM haldast þannig óbreyttir:

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());
    }
}

Skiptu út skjalfestingarendapunktinum fyrir þinn HTTP-staðgengil; HTTP-staðgenglalistinn býður kosti til að prófa. ProxySelector.of tekur sokkulvistfang: notaðu hýsilinn án http://-forskeytis og gefðu gáttina sérstaklega. Það velur HTTP-staðgengil, ekki SOCKS eftir gáttarnúmeri. URI beiðninnar er áfram raunverulegi áfangastaðurinn.

HTTPS getur farið um þennan HTTP-staðgengil í göngum. Ekki þarf að draga úr öryggi áfangastaðarins og uppsetningin merkir ekki að hlustari staðgengilsins sjálfs styðji TLS.

Tengingartímamörk biðlarasmiðsins gilda við að koma á tengingu; beiðnin hefur eigin tímamörk. Hafðu bæði skýr því beiðni getur endurnýtt tengingu sem er þegar til. Net-, auðkenningar- eða gangaundantekning getur komið upp fyrir nokkurt svar frá áfangastaðnum, en villustaða í svari þarf ekki að valda undantekningu.

Endurnýttu biðlarann fyrir beiðnir með sömu leiðarstefnu svo forritið geti notið tengingarstýringar hans.

Tengdir greinar