ฉันใช้ไคลเอนต์ apache http v4.5 และใช้เป็นไคลเอนต์ REST ในบางกรณี ฉันตรวจพบข้อผิดพลาด "[อ่าน] ข้อผิดพลาด I/O: หมดเวลาอ่าน" ซึ่งมาจากเฟรมเวิร์ก httpclient เมื่ออ่านเนื้อหาที่ได้รับและแสดงเป็นข้อความสุดท้าย
ดูเหมือนว่าจะไม่มีผลกระทบ แต่ฉันสงสัยว่ามีใครพอทราบหรือไม่ว่ามันมาจากไหนและจะแก้ไขได้อย่างไร ตามหัวข้อต่อไปนี้ (ลิงก์) ดูเหมือนว่า เป็นปัญหากับการกำหนดค่า "mutlithreaded"
อย่างไรก็ตาม ฉันใช้เฉพาะการกำหนดค่าเริ่มต้นของไคลเอ็นต์ http และในขณะที่ฉันใช้เวอร์ชัน v4 ฉันไม่รู้ว่าจะตั้งค่า "มัลติเธรด" เป็นเท็จได้อย่างไรเพื่อดูว่าจะสร้างความแตกต่างหรือไม่
ฉันพยายามตั้งค่าการหมดเวลาด้วย แต่ก็ไม่ได้ช่วยอะไร
มีคำแนะนำอะไรบ้าง?
บันทึก:
15:48:05.984 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "HTTP/1.1 200 OK[\r][\n]"
15:48:05.984 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "Date: Tue, 29 Dec 2015 14:48:03 GMT[\r][\n]"
15:48:05.984 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "Server: Apache/2.4.12 (Win32) OpenSSL/1.0.1l PHP/5.6.8[\r][\n]"
15:48:05.984 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "X-Powered-By: PHP/5.6.8[\r][\n]"
15:48:05.985 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "Cache-Control: nocache, private[\r][\n]"
15:48:05.985 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "Content-Length: 99[\r][\n]"
15:48:05.985 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "Keep-Alive: timeout=5, max=99[\r][\n]"
15:48:05.985 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "Connection: Keep-Alive[\r][\n]"
15:48:05.985 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "Content-Type: application/json[\r][\n]"
15:48:05.985 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "[\r][\n]"
15:48:05.985 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "{"success":true,"data":{"id":1946,"location":"http:\/\/localhost:9001\/shop\/api\/articles\/1946"}}"
15:48:06.016 [main] DEBUG org.apache.http.wire - http-outgoing-8 << "[read] I/O error: Read timed out"
การเริ่มต้นไคลเอ็นต์ Http ของฉัน
HttpClientBuilder httpBuilder = HttpClientBuilder.create();
// set timeout did not helped
// RequestConfig.Builder requestBuilder = RequestConfig.custom();
// requestBuilder = requestBuilder.setConnectTimeout(timeout);
// requestBuilder = requestBuilder.setConnectionRequestTimeout(timeout);
// requestBuilder = requestBuilder.setSocketTimeout(timeout);
// httpBuilder.setDefaultRequestConfig(requestBuilder.build());
HttpClient httpClient = httpBuilder.build();