ໃນແອັບພລິເຄຊັນ Apache HttpClient 4, ປາຍທາງ HTTPS ບໍ່ໄດ້ໝາຍຄວາມວ່າທຸກການເຊື່ອມຕໍ່ເລີ່ມດ້ວຍ TLS. ພຣັອກຊີ HTTP ທຳມະດາເຂົ້າເຖິງຜ່ານການເຊື່ອມຕໍ່ທີ່ບໍ່ມີການເຂົ້າລະຫັດ ກ່ອນທີ່ CONNECT ຈະເປີດອຸໂມງ ແລະ TLS ຈະຖືກຊັ້ນໄປຫາປາຍທາງ.

ຖ້າຜູ້ຈັດການການເຊື່ອມຕໍ່ແບບກຳນົດເອງລົງທະບຽນພຽງ https, ການໂດດພຣັອກຊີຄັ້ງທຳອິດອາດລົ້ມເຫຼວດ້ວຍ UnsupportedSchemeException: http protocol is not supported.

ສຳລັບ API 4.5, ລວມໂຮງງານທັງສອງເມື່ອສ້າງຜູ້ຈັດການນັ້ນ:

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 ແມ່ນ SSLConnectionSocketFactory ທີ່ມີຢູ່ແລ້ວຂອງແອັບພລິເຄຊັນ ພ້ອມການກວດສອບຄວາມໄວ້ວາງໃຈ ແລະ ຊື່ໂຮສຕ໌ທີ່ຕັ້ງໃຈໄວ້. ປະເພດທີ່ສະແດງເປັນຂອງແພັກເກັດ org.apache.http ຂອງ Apache 4. ສ່ວນນີ້ສົມມຸດວ່າ Java ສາມາດອະນຸມານປະເພດຕົວປ່ຽນທ້ອງຖິ່ນ; ໂຄດ Java ເກົ່າອາດໃຊ້ປະເພດທີ່ຊັດເຈນ.

ຕິດຜູ້ຈັດການທີ່ແກ້ໄຂແລ້ວເຂົ້າກັບໄຄລເອັນທີ່ໃຊ້ຕົວຈິງສຳລັບຄຳຮ້ອງ. ສຳລັບຄຳຮ້ອງ HTTPS ສາທາລະນະທີ່ອະນຸຍາດໂດຍບໍ່ມີການຢືນຢັນພຣັອກຊີ, ລາຍການ HTTP ຈາກລາຍຊື່ພຣັອກຊີ HTTPສາມາດຕື່ມທີ່ຢູ່ພຣັອກຊີຂອງ HttpHost. ການຕັ້ງຄ່າ builder ອື່ນບໍ່ໄດ້ອັບເດດໄຄລເອັນທີ່ສ້າງແລ້ວ.

ກວດສອບຄວາມເປັນເຈົ້າຂອງ builder ດ້ວຍ: HttpClientBuilder ບັນທຶກວ່າຜູ້ຈັດການການເຊື່ອມຕໍ່ທີ່ໃຫ້ຢ່າງຊັດເຈນສາມາດຂ້າມອິນພຸດການຕັ້ງຄ່າ SSL ແຍກຕ່າງຫາກຂອງມັນ. ໃສ່ໂຮງງານທີ່ຕ້ອງການໄວ້ໃນທະບຽນຂອງຜູ້ຈັດການ ແທນທີ່ຈະສົມມຸດວ່າການເອີ້ນ setSSLContext ພາຍຫຼັງຈະປ່ຽນພາຍໃນຂອງມັນ.

ການບົ່ງບອກນີ້ກ່ຽວຂ້ອງກັບທະບຽນສະຄີມທ້ອງຖິ່ນ. ການທ້າທາຍການຢືນຢັນພຣັອກຊີ ຫຼື ປາຍທາງທີ່ຖືກປະຕິເສດ ເປັນຜົນລັບພາຍຫຼັງທີ່ແຕກຕ່າງ. ຮັກສາທະບຽນໂຮງງານທັງສອງໄວ້ຂະນະທີ່ທ່ານສືບສວນການຕອບສະໜອງເຫຼົ່ານັ້ນ.

ບົດຄວາມທີ່ກ່ຽວຂ້ອງ