Defnyddio dirprwy HTTP yn Java HttpClient
Rhowch ProxySelector i adeiladwr cleient HTTP Java a chadwch derfynau amser y cysylltiad a'r cais ar wahân.
Yn Java 11 neu'n ddiweddarach, gosodwch ProxySelector ar adeiladwr y cleient. Mae hyn yn gadael priodweddau dirprwy'r JVM cyfan heb eu newid:
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());
}
}Rhowch eich dirprwy HTTP yn lle pen pwynt y ddogfennaeth; mae'r rhestr ddirprwyon HTTP yn darparu ymgeiswyr i'w profi. Mae ProxySelector.of yn derbyn cyfeiriad soced: defnyddiwch y gwesteiwr heb ragddodiad http:// a rhowch y porth ar wahân. Mae'n dewis dirprwy HTTP, nid SOCKS yn ôl rhif y porth. Mae URI'r cais yn parhau i fod yn wir gyrchfan.
Gall HTTPS deithio drwy'r dirprwy HTTP hwn gan ddefnyddio twnnel. Nid oes angen israddio diogelwch y gyrchfan, ac nid yw'r gosodiad yn awgrymu bod gwrandäwr y dirprwy ei hun yn cefnogi TLS.
Mae terfyn amser cysylltiad adeiladwr y cleient yn berthnasol wrth sefydlu cysylltiad; mae gan y cais ei derfyn ei hun. Cadwch y ddau'n amlwg oherwydd gall cais ailddefnyddio cysylltiad presennol. Gall eithriad rhwydwaith, dilysu neu dwnnel ddigwydd cyn unrhyw ymateb gan y gyrchfan, ond nid oes rhaid i statws gwall a ddychwelir daflu eithriad.
Ailddefnyddiwch y cleient ar gyfer ceisiadau â'r un polisi llwybro fel bod y rhaglen yn elwa ar ei reolaeth cysylltiadau.