Gwall procsi HttpClient 4: nid yw'r protocol http yn cael ei gefnogi
Cadwch y ffatri HTTP plaen mewn cofrestr Apache HttpClient 4 addasedig pan fo llwybr HTTPS yn cysylltu â phrocsi HTTP yn gyntaf.
Mewn rhaglen Apache HttpClient 4, nid yw cyrchfan HTTPS yn golygu bod pob cysylltiad yn dechrau gyda TLS. Cyrhaeddir procsi HTTP cyffredin dros gysylltiad plaen cyn i CONNECT agor y twnnel a TLS gael ei haenu tuag at y gyrchfan.
Os yw rheolwr cysylltiadau addasedig yn cofrestru https yn unig, gall y naid procsi gyntaf fethu gyda UnsupportedSchemeException: http protocol is not supported.
Ar gyfer API 4.5, cynhwyswch y ddwy ffatri wrth adeiladu'r rheolwr hwnnw:
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 yw SSLConnectionSocketFactory presennol y rhaglen, gyda'i wirio ymddiriedaeth ac enw gwesteiwr arfaethedig. Mae'r mathau a ddangosir yn perthyn i becynnau org.apache.http Apache 4. Mae'r darn yn tybio bod Java yn casglu mathau newidynnau lleol; gall cod Java hŷn ddefnyddio mathau penodol.
Cysylltwch y rheolwr wedi'i gywiro â'r cleient a ddefnyddir mewn gwirionedd ar gyfer y cais. Ar gyfer cais HTTPS cyhoeddus a ganiateir heb ddilysu procsi, gall cofnod HTTP o'r rhestr procsi HTTP lenwi cyfeiriad procsi HttpHost. Nid yw ffurfweddu adeiladydd gwahanol yn diweddaru cleient sydd eisoes wedi'i adeiladu.
Archwiliwch berchnogaeth yr adeiladydd hefyd: mae HttpClientBuilder yn nodi y gall rheolwr cysylltiadau a ddarperir yn benodol ddiystyru ei fewnbynnau ffurfweddu SSL ar wahân. Rhowch y ffatrïoedd angenrheidiol yng nghofrestr y rheolwr yn lle tybio y bydd galwad setSSLContext hwyrach yn disodli ei fewnion.
Mae'r diagnosis hwn yn ymwneud â chofrestr sgema lleol. Her dilysu procsi neu gyrchfan wedi'i gwrthod yw canlyniad hwyrach, gwahanol. Cadwch y ddwy gofrestr ffatri wrth ymchwilio i'r ymatebion hynny.