Error sa proxy ng HttpClient 4: hindi sinusuportahan ang http protocol
Panatilihin ang payak na pabrika ng HTTP sa custom na rehistro ng Apache HttpClient 4 kapag unang kumonekta ang rutang HTTPS sa isang HTTP proxy.
Sa isang aplikasyong Apache HttpClient 4, ang destinasyong HTTPS ay hindi nangangahulugang bawat koneksyon ay nagsisimula sa TLS. Ang karaniwang HTTP proxy ay naaabot sa pamamagitan ng koneksyong walang encryption bago buksan ng CONNECT ang tunnel at ipatong ang TLS patungo sa destinasyon.
Kung ang custom na tagapamahala ng koneksyon ay nagrerehistro lamang ng https, maaaring mabigo ang unang paglundag sa proxy na may UnsupportedSchemeException: http protocol is not supported.
Para sa API 4.5, isama ang parehong pabrika kapag binubuo ang tagapamahala na iyon:
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();
Ang tlsFactory ay ang umiiral na SSLConnectionSocketFactory ng aplikasyon, kasama ang nilalayong pagpapatunay ng pagtitiwala at pangalan ng host. Ang mga uring ipinapakita ay kabilang sa mga pakete ng org.apache.http ng Apache 4. Ipinapalagay ng bahaging ito ang paghihinuha ng uri ng lokal na variable sa Java; maaaring gumamit ng tahasang uri ang mas lumang Java code.
Ikabit ang naitamang tagapamahala sa kliyenteng aktuwal na ginagamit para sa kahilingan. Para sa pinahihintulutang pampublikong kahilingang HTTPS na walang pagpapatunay ng proxy, ang isang HTTP entry mula sa listahan ng HTTP proxy ay makakapuno sa proxy address ng HttpHost. Ang pagkumpigura ng ibang builder ay hindi nag-a-update ng kliyenteng nabuo na.
Suriin din ang pagmamay-ari ng builder: itinatala ng HttpClientBuilder na ang tahasang ibinigay na tagapamahala ng koneksyon ay maaaring manaig sa magkahiwalay nitong input sa pagkumpigura ng SSL. Ilagay ang mga kinakailangang pabrika sa rehistro ng tagapamahala sa halip na ipagpalagay na papalitan ng susunod na tawag sa setSSLContext ang loob nito.
Ang pagsusuring ito ay tungkol sa lokal na rehistro ng iskema. Ang hamon sa pagpapatunay ng proxy o tinanggihang destinasyon ay susunod, ibang resulta. Panatilihin ang parehong pagrerehistro ng pabrika habang iniimbestigahan ang mga tugon na iyon.