ตั้งเวลาหมดเวลาสำหรับพร็อกซี Apache HttpClient 5 ที่ค้างระหว่าง CONNECT
ตั้งเวลาหมดเวลา socket I/O ของตัวจัดการการเชื่อมต่อสำหรับการตั้งทันเนล พร้อมกับเวลาหมดเวลาการเชื่อมต่อ TCP ที่แยกต่างหาก
พร็อกซียอมรับ 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 สาธารณะแบบแยก ให้ผู้สมัครจาก รายการพร็อกซี HTTP จัดหาเอนด์พอยต์ รักษาปลายทางให้คงที่เมื่อเปรียบเทียบเวลาหมดเวลา
| ขีดจำกัด | การรอที่จัดการ |
|---|---|
| เวลาหมดเวลาการเชื่อมต่อ | การสร้างการเชื่อมต่อ |
| เวลาหมดเวลา socket | ความไม่มีการเคลื่อนไหว I/O เริ่มต้น รวมถึงการแลกเปลี่ยน CONNECT |
| การได้มาจากพูล / การตอบกลับของแอปพลิเคชัน | ขั้นตอนอื่นๆ ที่กำหนดค่าแยก |
หลัง CONNECT TLS อาจต้องมีขีดจำกัดการตั้งค่าของตัวเองผ่านการกำหนดค่า TLS ของ HttpClient 5 นอกจากนี้ให้แยกความไม่มีการเคลื่อนไหวออกจากกำหนดเวลารวม ไบต์ที่ขาดช่วงหรือการแลกเปลี่ยนการรับรองความถูกต้องซ้ำๆ อาจทำให้เวลารวมยาวขึ้น ใช้นโยบายกำหนดเวลาหรือยกเลิกที่แอปพลิเคชันรองรับสำหรับ งบประมาณเดียวสำหรับการดำเนินการทั้งหมด.