Într-o aplicație Apache HttpClient 4, o destinație HTTPS nu înseamnă că fiecare conexiune începe cu TLS. Un proxy HTTP obișnuit este atins printr-o conexiune necriptată înainte ca CONNECT să deschidă tunelul și TLS să fie stratificat spre destinație.

Dacă un manager de conexiuni personalizat înregistrează doar https, primul salt prin proxy poate eșua cu UnsupportedSchemeException: http protocol is not supported.

Pentru API-ul 4.5, includeți ambele fabrici la construirea acelui manager:

var registry = RegistryBuilder.<ConnectionSocketFactory>create()
    .register("http", PlainConnectionSocketFactory.getSocketFactory())
    .register("https", tlsFactory)
    .build();

var manager = new PoolingHttpClientConnectionManager(registry);
var client = HttpClients.custom()
    .setConnectionManager(manager)
    .setProxy(new HttpHost("proxy.example.net", 8080, "http"))
    .build();

tlsFactory este SSLConnectionSocketFactory existent al aplicației, cu verificarea de încredere și de nume de gazdă prevăzută. Tipurile afișate aparțin pachetelor org.apache.http din Apache 4. Fragmentul presupune inferența tipurilor variabilelor locale din Java; codul Java mai vechi poate folosi tipuri explicite.

Atașați managerul corectat clientului folosit efectiv pentru cerere. Pentru o cerere HTTPS publică permisă fără autentificare de proxy, o intrare HTTP din lista de proxy HTTP poate completa adresa de proxy a HttpHost. Configurarea altui builder nu actualizează un client deja construit.

Verificați și proprietatea builderului: HttpClientBuilder documentează că un manager de conexiuni furnizat explicit poate suprascrie intrările sale separate de configurare SSL. Puneți fabricile necesare în registrul managerului în loc să presupuneți că un apel setSSLContext ulterior îi va înlocui interiorul.

Acest diagnostic privește registrul local de scheme. O solicitare de autentificare a proxy-ului sau o destinație refuzată este un rezultat ulterior, diferit. Păstrați ambele înregistrări ale fabricilor în timp ce investigați acele răspunsuri.

Articole similare