Had masa untuk proksi Apache HttpClient 5 yang tersekat semasa CONNECT
Tetapkan had masa socket I/O pengurus sambungan untuk penyediaan terowong, bersama had masa sambungan TCP yang berasingan.
Proksi menerima TCP tetapi tidak pernah menyelesaikan balasan CONNECT. Respons laman web belum bermula; had masa yang menyasarkan hanya balasan kemudian itu boleh membiarkan penyediaan ini menunggu tanpa had.
Untuk Apache HttpClient 5.3.1, tetapkan nilai lalai pengurus sambungan:
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();Gunakan kelas Apache HttpComponents 5 di bawah org.apache.hc, dengan Timeout dalam pakej utiliti core5. Kekalkan klien untuk kerjanya dan tutupnya. Untuk ujian HTTP awam yang terasing, calon daripada senarai proksi HTTP menyediakan titik akhir; kekalkan destinasi stabil semasa membandingkan had masa.
| Had | Penantian yang ditangani |
|---|---|
| Had masa sambungan | Pembentukan sambungan |
| Had masa socket | Ketidakaktifan I/O lalai, termasuk pertukaran CONNECT |
| Perolehan daripada kumpulan / respons aplikasi | Peringkat lain yang dikonfigurasikan secara berasingan |
Selepas CONNECT, TLS mungkin memerlukan had penyediaan sendiri melalui konfigurasi TLS HttpClient 5. Bezakan juga ketidakaktifan daripada tarikh akhir keseluruhan: bait berselang-seli atau pertukaran pengesahan berulang boleh memanjangkan jumlah masa. Gunakan dasar tarikh akhir atau pembatalan yang disokong aplikasi untuk satu belanjawan untuk keseluruhan operasi.