Java 11 vai jaunākā versijā klienta veidotājā iestatiet ProxySelector. Visas JVM starpniekservera īpašības tā paliek nemainītas:

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

Dokumentācijas galapunktu aizstājiet ar savu HTTP starpniekserveri; HTTP starpniekserveru saraksts piedāvā kandidātus pārbaudei. ProxySelector.of pieņem soketa adresi: izmantojiet resursdatoru bez http:// prefiksa un portu norādiet atsevišķi. Tas izvēlas HTTP starpniekserveri, nevis SOCKS pēc porta numura. Pieprasījuma URI paliek īstais galamērķis.

HTTPS var iet caur šo HTTP starpniekserveri tunelī. Nav jāpazemina galamērķa aizsardzība, un šis iestatījums nenozīmē, ka pats starpniekservera klausītājs atbalsta TLS.

Klienta veidotāja savienojuma taimauts darbojas, veidojot savienojumu; pieprasījumam ir savs taimauts. Abus turiet skaidri redzamus, jo pieprasījums var atkārtoti izmantot esošu savienojumu. Tīkla, autentifikācijas vai tuneļa izņēmums var rasties pirms jebkādas galamērķa atbildes, bet atgriezts kļūdas statuss ne vienmēr izraisa izņēmumu.

Atkārtoti izmantojiet klientu pieprasījumiem ar vienādu maršrutēšanas politiku, lai lietotne iegūtu no tā savienojumu pārvaldības.

Saistītie raksti