Ett Java-proxyobjekt beskriver en rutt. Nätverksklienten avgör fortfarande vilka typer av rutter den kan använda. Det spelar roll när den tillgängliga slutpunkten talar SOCKS och programmet använder java.net.http.HttpClient.

I den JDK 25-implementering som undersöks här accepterar HTTP-klientens förfrågningskod en HTTP-kandidat från väljaren. En SOCKS-kandidat får den inte att utföra SOCKS-förhandling; implementeringen kan fortsätta utan proxy. Ett lyckat svar är därför inte tillräckligt bevis för att en anpassad väljares SOCKS-post användes.

Välj transporten först

För ett befintligt URLConnection-baserat program kan protokollhanteraren få en stödd explicit proxy när anslutningen öppnas:

Proxy route = new Proxy(Proxy.Type.SOCKS,
    new InetSocketAddress("proxy.example", 1080));
URLConnection connection = URI.create("https://service.example/")
    .toURL().openConnection(route);
connection.setConnectTimeout(5000);
connection.setReadTimeout(15000);

För tillåtna tester mot offentliga mål, använd en matchande SOCKS-slutpunkt från din tjänst eller från SOCKS-proxylistan. Detta är ett annat klient-API, inte en alternativ stavning av HttpClient.Builder.proxy. Behåll mål-URL:en så att HTTPS fortsätter att identifiera den avsedda webbplatsen.

Ett program som måste behålla java.net.http kan i stället använda en kompatibel HTTP-proxyslutpunkt, inklusive en godkänd adapter som hanterar den vidare SOCKS-anslutningen. Det lägger till en verklig komponent och ännu en åtkomstgräns; att ändra port 8080 till 1080 ger inte den översättningen.

Håll val och övertagande synliga

Registrera både väljarens resultat och den anslutning som klienten faktiskt öppnar. Det första beskriver policyutdata; det andra fastställer om implementeringen övertog den.

Knyt slutsatser till den körmiljö och transport som används. JVM SOCKS-egenskaper som en socket-implementering använder är inte ett löfte att varje HTTP-bibliotek rådfrågar dem. När rutten är obligatorisk bör en proxytyp som inte stöds upptäckas innan en till synes lyckad direkt förfrågan accepteras.

Relaterade artiklar