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 പിന്തുണയ്ക്കുന്നു എന്നും അർഥമാക്കുന്നില്ല.

ക്ലയന്റ് ബിൽഡറിന്റെ കണക്ഷൻ ടൈംഔട്ട് കണക്ഷൻ സ്ഥാപിക്കുമ്പോൾ ബാധകമാണ്; അഭ്യർഥനയ്ക്ക് സ്വന്തം ടൈംഔട്ട് ഉണ്ട്. അഭ്യർഥന നിലവിലുള്ള കണക്ഷൻ വീണ്ടും ഉപയോഗിച്ചേക്കാമെന്നതിനാൽ രണ്ടും വ്യക്തമാക്കുക. ലക്ഷ്യസ്ഥാനത്തുനിന്ന് ഒരു മറുപടിയും വരുന്നതിനുമുമ്പ് നെറ്റ്‌വർക്ക്, പ്രാമാണീകരണം അല്ലെങ്കിൽ ടണൽ എക്സെപ്ഷൻ വരാം; എന്നാൽ തിരിച്ചുകിട്ടിയ പിശക് സ്റ്റാറ്റസ് നിർബന്ധമായും എക്സെപ്ഷൻ ഉയർത്തണമെന്നില്ല.

ഒരേ റൂട്ടിങ് നയമുള്ള അഭ്യർഥനകൾക്ക് ക്ലയന്റ് വീണ്ടും ഉപയോഗിക്കുക, ആപ്പിന് അതിന്റെ കണക്ഷൻ കൈകാര്യം ചെയ്യലിന്റെ ഗുണം ലഭിക്കട്ടെ.

അനുബന്ധ ലേഖനങ്ങൾ