Í Apache HttpClient 4-forriti þýðir HTTPS-áfangastaður ekki að hver tenging byrji með TLS. Venjulegum HTTP-proxy er náð yfir ódulkóðaða tengingu áður en CONNECT opnar göngin og TLS er lagskipt út að áfangastaðnum.

Ef sérsniðinn tengistjóri skráir aðeins https getur fyrsta stökkið gegnum proxy misheppnast með UnsupportedSchemeException: http protocol is not supported.

Fyrir 4.5-API skal hafa báðar verksmiðjurnar með þegar sá stjóri er byggður:

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 er fyrirliggjandi SSLConnectionSocketFactory forritsins með fyrirhuguðu trausts- og hýsilisnafnsprófi. Tegundirnar sem sýndar eru tilheyra org.apache.http-pökkum Apache 4. Brotið gerir ráð fyrir að Java geti ályktað tegund staðbundinna breytna; eldri Java-kóði getur notað skýrar tegundir.

Tengdu leiðrétta stjórann við þann biðlara sem raunverulega er notaður fyrir beiðnina. Fyrir leyfða opinbera HTTPS-beiðni án proxy-auðkenningar getur HTTP-færsla úr HTTP-proxylistanum fyllt proxy-vistfang HttpHost. Að stilla annan byggjanda uppfærir ekki þegar byggðan biðlara.

Kannaðu einnig eignarhald byggjandans: HttpClientBuilder skjalfestir að tengistjóri sem er skýrt veittur geti hnekkt aðskildum SSL-stillingarinntakum hans. Settu nauðsynlegu verksmiðjurnar í skrá stjórans í stað þess að gera ráð fyrir að síðara setSSLContext-kall muni skipta út innri hans.

Þessi greining varðar staðbundna skema-skrána. Proxy-auðkenningarákall eða synjaður áfangastaður er síðari, önnur niðurstaða. Varðveittu báðar verksmiðjuskráningarnar meðan þú rannsakar þessi svör.

Tengdir greinar