Java 11 və sonrakı versiyalarda müştəri qurucusunda ProxySelector təyin edin. Beləliklə, bütün JVM üçün proksi xüsusiyyətləri dəyişməz qalır:

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

Sənədləşdirmə nöqtəsini öz HTTP proksinizlə əvəz edin; HTTP proksi siyahısı sınaq üçün namizədlər verir. ProxySelector.of soket ünvanı alır: hostu http:// prefiksi olmadan istifadə edin və portu ayrıca verin. O, HTTP proksi seçir, port nömrəsinə görə SOCKS seçmir. Sorğunun URI-si həqiqi təyinat olaraq qalır.

HTTPS bu HTTP proksidən tunellə keçə bilər. Təyinatın təhlükəsizliyini azaltmağa ehtiyac yoxdur və bu quruluş proksi dinləyicisinin özünün TLS dəstəklədiyi demək deyil.

Müştəri qurucusunun bağlantı vaxt həddi bağlantı qurulanda tətbiq olunur; sorğunun ayrıca vaxt həddi var. Sorğu mövcud bağlantını yenidən istifadə edə bildiyindən hər ikisini açıq saxlayın. Təyinatın hər hansı cavabından əvvəl şəbəkə, autentifikasiya və ya tunel istisnası yarana bilər; qaytarılan xəta statusu isə mütləq istisna yaratmır.

Eyni marşrut siyasətli sorğular üçün müştərini yenidən istifadə edin ki, tətbiq onun bağlantı idarəetməsindən faydalansın.

Əlaqəli məqalələr