Користење HTTP-прокси во Java HttpClient
Предајте ProxySelector на градителот на HTTP-клиентот во Java и раздвојте го времето за чекање на врската од она на барањето.
Во 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-поддршка на самиот слушач на проксито.
Времето за чекање на врската во градителот важи при воспоставување врска; барањето има свое време за чекање. Држете ги двете јасни, бидејќи барање може повторно да користи постојна врска. Мрежен, автентикациски или тунелски исклучок може да се појави пред кој било одговор од одредиштето, додека вратен статус за грешка не мора да предизвика исклучок.
Користете го клиентот повторно за барања со иста политика на рутирање, за апликацијата да има корист од неговото управување со врските.