ກຳນົດເວລາສຳລັບ Apache HttpClient 5 proxy ທີ່ຄ້າງລະຫວ່າງ CONNECT
ກຳນົດເວລາ socket I/O ຂອງຕົວຈັດການການເຊື່ອມຕໍ່ສຳລັບການຕັ້ງອຸໂມງ, ພ້ອມກັບເວລາ TCP connect ແຍກຕ່າງຫາກ.
Proxy ຮັບ TCP ແຕ່ບໍ່ເຄີຍສຳເລັດການຕອບ CONNECT. ການຕອບຂອງເວັບໄຊຍັງບໍ່ໄດ້ເລີ່ມ; ເວລາທີ່ເລັງໃສ່ພຽງແຕ່ການຕອບພາຍຫຼັງນັ້ນອາດເຮັດໃຫ້ການຕັ້ງນີ້ລໍຖ້າບໍ່ມີຂີດຈຳກັດ.
ສຳລັບ Apache HttpClient 5.3.1, ກຳນົດຄ່າເລີ່ມຕົ້ນຂອງຕົວຈັດການການເຊື່ອມຕໍ່:
var connection = ConnectionConfig.custom()
.setConnectTimeout(Timeout.ofSeconds(5))
.setSocketTimeout(Timeout.ofSeconds(10))
.build();
var manager = PoolingHttpClientConnectionManagerBuilder.create()
.setDefaultConnectionConfig(connection)
.build();
var client = HttpClients.custom()
.setConnectionManager(manager)
.setProxy(new HttpHost("http", "proxy.example", 8080))
.build();ໃຊ້ຄລາສຂອງ Apache HttpComponents 5 ພາຍໃຕ້ org.apache.hc, ກັບ Timeout ໃນແພັກເກດເຄື່ອງມື core5. ເກັບຄລາຍຢູ່ສຳລັບວຽກຂອງມັນແລ້ວປິດ. ສຳລັບການທົດສອບ HTTP ສາທາລະນະແຍກ, ຜູ້ສະໝັກຈາກ ລາຍຊື່ proxy HTTP ສະໜອງຈຸດສິ້ນສຸດ; ຮັກສາປາຍທາງໃຫ້ຄົງທີ່ເມື່ອປຽບທຽບເວລາ.
| ຂີດຈຳກັດ | ການລໍຖ້າທີ່ແກ້ໄຂ |
|---|---|
| ເວລາເຊື່ອມຕໍ່ | ການສ້າງການເຊື່ອມຕໍ່ |
| ເວລາ socket | ຄວາມບໍ່ເຄື່ອນໄຫວ I/O ເລີ່ມຕົ້ນ, ລວມທັງການແລກປ່ຽນ CONNECT |
| ການໄດ້ມາຈາກ pool / ການຕອບຂອງແອັບ | ຂັ້ນຕອນອື່ນທີ່ຕັ້ງຄ່າແຍກ |
ຫຼັງ CONNECT, TLS ອາດຕ້ອງການຂີດຈຳກັດການຕັ້ງຂອງຕົນເອງຜ່ານການຕັ້ງຄ່າ TLS ຂອງ HttpClient 5. ຍັງແຍກຄວາມບໍ່ເຄື່ອນໄຫວອອກຈາກກຳນົດເວລາລວມ: ໄບຕ໌ທີ່ຂາດຕອນ ຫຼື ການແລກປ່ຽນການພິສູດຕົວຕົນຊ້ຳໆ ອາດເຮັດໃຫ້ເວລາລວມຍາວຂຶ້ນ. ໃຊ້ນະໂຍບາຍກຳນົດເວລາ ຫຼື ຍົກເລີກທີ່ແອັບຮອງຮັບສຳລັບ ງົບປະມານດຽວສຳລັບການດຳເນີນງານທັງໝົດ.