Java HttpClient-ൽ HTTP പ്രോക്സി ഉപയോഗിക്കുക
Java HTTP ക്ലയന്റ് ബിൽഡറിന് ProxySelector നൽകുക; കണക്ഷന്റെയും അഭ്യർഥനയുടെയും ടൈംഔട്ടുകൾ വേർതിരിക്കുക.
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 പിന്തുണയ്ക്കുന്നു എന്നും അർഥമാക്കുന്നില്ല.
ക്ലയന്റ് ബിൽഡറിന്റെ കണക്ഷൻ ടൈംഔട്ട് കണക്ഷൻ സ്ഥാപിക്കുമ്പോൾ ബാധകമാണ്; അഭ്യർഥനയ്ക്ക് സ്വന്തം ടൈംഔട്ട് ഉണ്ട്. അഭ്യർഥന നിലവിലുള്ള കണക്ഷൻ വീണ്ടും ഉപയോഗിച്ചേക്കാമെന്നതിനാൽ രണ്ടും വ്യക്തമാക്കുക. ലക്ഷ്യസ്ഥാനത്തുനിന്ന് ഒരു മറുപടിയും വരുന്നതിനുമുമ്പ് നെറ്റ്വർക്ക്, പ്രാമാണീകരണം അല്ലെങ്കിൽ ടണൽ എക്സെപ്ഷൻ വരാം; എന്നാൽ തിരിച്ചുകിട്ടിയ പിശക് സ്റ്റാറ്റസ് നിർബന്ധമായും എക്സെപ്ഷൻ ഉയർത്തണമെന്നില്ല.
ഒരേ റൂട്ടിങ് നയമുള്ള അഭ്യർഥനകൾക്ക് ക്ലയന്റ് വീണ്ടും ഉപയോഗിക്കുക, ആപ്പിന് അതിന്റെ കണക്ഷൻ കൈകാര്യം ചെയ്യലിന്റെ ഗുണം ലഭിക്കട്ടെ.