Nota HTTP-staðgengil í Java HttpClient
Sendu ProxySelector til HTTP-biðlarasmiðs Java og haltu tengingar- og beiðnitímamörkum aðskildum.
Í Java 11 eða nýrra stillirðu ProxySelector á biðlarasmiðnum. Staðgengilseiginleikar allrar JVM haldast þannig óbreyttir:
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());
}
}Skiptu út skjalfestingarendapunktinum fyrir þinn HTTP-staðgengil; HTTP-staðgenglalistinn býður kosti til að prófa. ProxySelector.of tekur sokkulvistfang: notaðu hýsilinn án http://-forskeytis og gefðu gáttina sérstaklega. Það velur HTTP-staðgengil, ekki SOCKS eftir gáttarnúmeri. URI beiðninnar er áfram raunverulegi áfangastaðurinn.
HTTPS getur farið um þennan HTTP-staðgengil í göngum. Ekki þarf að draga úr öryggi áfangastaðarins og uppsetningin merkir ekki að hlustari staðgengilsins sjálfs styðji TLS.
Tengingartímamörk biðlarasmiðsins gilda við að koma á tengingu; beiðnin hefur eigin tímamörk. Hafðu bæði skýr því beiðni getur endurnýtt tengingu sem er þegar til. Net-, auðkenningar- eða gangaundantekning getur komið upp fyrir nokkurt svar frá áfangastaðnum, en villustaða í svari þarf ekki að valda undantekningu.
Endurnýttu biðlarann fyrir beiðnir með sömu leiðarstefnu svo forritið geti notið tengingarstýringar hans.