HttpClient 4 puhverserveri viga: http-protokoll ei ole toetatud
Hoidke tavaline HTTP-tehas kohandatud Apache HttpClient 4 registris, kui HTTPS-marsruut loob esmalt ühenduse HTTP-puhverserveriga.
Apache HttpClient 4 rakenduses ei tähenda HTTPS-sihtkoht, et iga ühendus algab TLS-iga. Tavalise HTTP-puhverserverini jõutakse krüpteerimata ühenduse kaudu enne, kui CONNECT avab tunnel ja TLS kihitakse sihtkoha suunas.
Kui kohandatud ühendusehaldur registreerib ainult https, võib esimene puhverserveri hüpe ebaõnnestuda veaga UnsupportedSchemeException: http protocol is not supported.
4.5 API puhul kaasake selle halduri loomisel mõlemad tehasad:
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 on rakenduse olemasolev SSLConnectionSocketFactory koos kavandatud usalduse ja hostinime kontrolliga. Näidatud tüübid kuuluvad Apache 4 org.apache.http pakettidesse. Katkend eeldab Java kohalike muutujate tüübi tuletamist; vanem Java-kood võib kasutada selgesõnalisi tüüpe.
Ühendage parandatud haldur kliendiga, mida päringu jaoks tegelikult kasutatakse. Lubatud avaliku HTTPS-päringu jaoks ilma puhverserveri autentimiseta saab HTTP-puhverserverite loendi HTTP-kirje täita HttpHosti puhverserveri aadressi. Teise ehitaja seadistamine ei värskenda juba loodud klienti.
Uurige ka ehitaja omandit: HttpClientBuilder dokumenteerib, et selgesõnaliselt antud ühendusehaldur võib alistada selle eraldi SSL-konfiguratsiooni sisendid. Pange vajalikud tehasad halduri registrisse, selle asemel et eeldada, et hilisem setSSLContext-kutse asendab selle sisemuse.
See diagnoos puudutab kohalikku skeemiregistrit. Puhverserveri autentimiskutse või keelatud sihtkoht on hilisem, teistsugune tulemus. Säilitage mõlemad tehaste registreeringud, kuni neid vastuseid uurite.