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 ஆதரிக்கிறது எனக் குறிக்காது.
கிளையன்ட் பில்டரின் இணைப்புக் காலவரம்பு இணைப்பு ஏற்படுத்தும்போது பொருந்தும்; கோரிக்கைக்கு அதன் சொந்த காலவரம்பு உண்டு. கோரிக்கை ஏற்கெனவே உள்ள இணைப்பை மறுபயன்படுத்தலாம் என்பதால் இரண்டையும் தெளிவாக வையுங்கள். இலக்கின் எந்தப் பதிலுக்கும் முன் வலை, அங்கீகாரம் அல்லது சுரங்க எக்செப்ஷன் ஏற்படலாம்; திரும்பிய பிழை நிலை கட்டாயமாக எக்செப்ஷன் எழுப்பாது.
ஒரே வழித்தடக் கொள்கையுள்ள கோரிக்கைகளுக்குக் கிளையன்டை மறுபயன்படுத்துங்கள்; அதன் இணைப்பு நிர்வாகத்தைச் செயலி பயன்படுத்திக்கொள்ளட்டும்.