Java 11 లేదా కొత్త వెర్షన్‌లో క్లయింట్ బిల్డర్‌పై ProxySelector అమర్చండి. మొత్తం JVM ప్రాక్సీ ప్రాపర్టీలు మారకుండా ఉంటాయి:

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

డాక్యుమెంటేషన్ ఎండ్‌పాయింట్‌ను మీ HTTP ప్రాక్సీతో మార్చండి; HTTP ప్రాక్సీ జాబితా పరీక్షించేందుకు అభ్యర్థులను ఇస్తుంది. ProxySelector.of సాకెట్ చిరునామాను తీసుకుంటుంది: హోస్ట్‌లో http:// ప్రిఫిక్స్ పెట్టకుండా పోర్ట్ విడిగా ఇవ్వండి. ఇది HTTP ప్రాక్సీని ఎంచుకుంటుంది, పోర్ట్ నంబర్‌ను బట్టి SOCKSను కాదు. అభ్యర్థన URI అసలు గమ్యస్థానంగానే ఉంటుంది.

HTTPS ఈ HTTP ప్రాక్సీ ద్వారా టన్నెల్ వాడి వెళ్లవచ్చు. గమ్యస్థాన భద్రత తగ్గించాల్సిన అవసరం లేదు; ఈ సెటప్ ప్రాక్సీ లిసనర్ స్వయంగా TLSను సమర్థిస్తుందని సూచించదు.

క్లయింట్ బిల్డర్ కనెక్షన్ టైమ్‌అవుట్ కనెక్షన్ ఏర్పరచేటప్పుడు వర్తిస్తుంది; అభ్యర్థనకు దాని స్వంత టైమ్‌అవుట్ ఉంది. అభ్యర్థన ఉన్న కనెక్షన్‌ను తిరిగి వాడవచ్చు కాబట్టి రెండింటినీ స్పష్టంగా ఉంచండి. గమ్యస్థానం నుంచి ఏ జవాబుకన్నా ముందే నెట్‌వర్క్, ప్రమాణీకరణ లేదా టన్నెల్ ఎక్సెప్షన్ రావచ్చు; తిరిగివచ్చిన లోప స్థితి తప్పనిసరిగా ఎక్సెప్షన్ లేవనెత్తదు.

ఒకే రూటింగ్ విధానం ఉన్న అభ్యర్థనలకు క్లయింట్‌ను తిరిగి వాడండి, తద్వారా యాప్ దాని కనెక్షన్ నిర్వహణను ఉపయోగించుకుంటుంది.

సంబంధిత వ్యాసాలు