HttpURLConnection expõe usingProxy, mas o resultado precisa da implementação e do estado da conexão ao lado. Não é um pedido de teste.

No manipulador HTTP do OpenJDK 25, um proxy HTTP configurado explicitamente pode fazer o método retornar true antes de a conexão de rede ser aberta:

import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URI;

var proxy = new Proxy(Proxy.Type.HTTP,
    new InetSocketAddress("proxy.example", 8080));
var url = URI.create("http://example.com/").toURL();
var connection = (HttpURLConnection) url.openConnection(proxy);
boolean proxyFlag = connection.usingProxy();

Um candidato HTTP da lista de proxies HTTP pode preencher o host e a porta para um pedido público permitido sem autenticação de proxy. openConnection constrói o objeto. Não estabelece a conexão HTTP apenas por devolver esse objeto. O indicador, neste caso de proxy explícito, não prova portanto que o intermediário esteja acessível ou aceite o pedido.

Com seleção automática, a escolha de rota pode ocorrer mais tarde, quando o manipulador se liga. Um resultado false precoce não deve ser tomado como a decisão final de rota. Após a conexão, interprete o estado juntamente com qualquer exceção ou resposta, sobretudo quando estiveram envolvidos autenticação ou recurso alternativo.

O método público pertence a HttpURLConnection, enquanto o comportamento acima é específico do manipulador OpenJDK indicado. Outro fornecedor ou implementação de JDK não tem de expor os mesmos detalhes antes da conexão.

Registe como o proxy foi escolhido e quando o indicador foi lido. Para estabelecer o endereço de origem que o destino vê, guarde provas do lado do destino; um marcador booleano de proxy não tem campo para esse endereço de saída.

Artigos relacionados