Tôi đang sử dụng Thành phần Apache của Apache để thực hiện tương tác http. Tôi cần điều chỉnh ứng dụng khách http của mình. Với mục đích này, tôi có hai tham số: thời gian chờ kết nối và thời gian chờ yêu cầu kết nối. Trong tài liệu thư viện và trong mã nguồn (không tìm thấy bình luận) Tôi không tìm thấy định nghĩa của thuật ngữ này. Tôi cần phải biết chính xác chúng là gì. Có thể họ đã được xác định trong tài liệu giao thức HTTP nhưng tôi không thể tìm thấy nó. Vì vậy, câu hỏi của tôi là ý nghĩa của hai thuật ngữ này và cách chúng khác biệt với nhau.Thời gian chờ kết nối và kết nối
Trả lời
HttpClient
có một cách để thiết lập kết nối và ổ cắm timeout (setConnectionTimeout()
và setTimeout()
) theo http://hc.apache.org/httpclient-3.x/apidocs/org/apache/commons/httpclient/HttpClient.html
Connection timeout
là thời gian chờ đến khi kết nối với máy chủ được thiết lập.
Socket timeout
là thời gian hết giờ để nhận dữ liệu (thời gian chờ của ổ cắm).
Ví dụ:
Giả sử bạn trỏ trình duyệt truy cập trang web. Nếu máy chủ không anwser trong X giây, thời gian chờ kết nối sẽ xảy ra. Nhưng nếu nó thiết lập kết nối, thì máy chủ sẽ bắt đầu xử lý kết quả cho trình duyệt. Nếu nó không kết thúc quá trình xử lý này trong Y giây, thời gian chờ của ổ cắm sẽ xảy ra.
Cảm ơn bạn đã trả lời, nhưng tôi vẫn gặp sự cố. Đây là trình xây dựng cấu hình yêu cầu http://hc.apache.org/httpcomponents-client-4.3.x/httpclient/apidocs/org/apache/http/client/config/RequestConfig.Builder.html và nó có ba phương thức setConnectionRequestTimeout, setConnectTimeout , setSocketTimeout (và không có bình luận!). Vì vậy, tôi vẫn không biết chính xác từng phương pháp và phương pháp nào tôi nên sử dụng. – mvb13
Ok, cuối cùng tôi thấy rằng getConnectionRequestTimeout trả về imeout bằng mili giây được sử dụng khi yêu cầu kết nối từ trình quản lý kết nối. Tôi đoán rằng quản lý kết nối là lớp thư viện apache-httpcomponents, vì vậy tôi sẽ không sử dụng nó. Tôi sẽ sử dụng setConnectionTimeout() và setTimeout(). – mvb13
Đối với hậu thế, trong HttpClient 4.X.X, sau đây là cách bạn xây dựng ứng dụng khách sử dụng một số connectTimeoutMillis
và requestTimeoutMillis
cụ thể.
HttpClientBuilder clientBuilder = HttpClientBuilder.create();
RequestConfig.Builder requestBuilder = RequestConfig.custom();
requestBuilder = requestBuilder.setConnectTimeout(connectTimeoutMillis);
requestBuilder = requestBuilder.setConnectionRequestTimeout(requestTimeoutMillis);
clientBuilder.setDefaultRequestConfig(requestBuilder.build());
CloseableHttpClient httpClient = clientBuilder.build();
...
Btw, javadocs cho mã này hút. Cố gắng tìm ra bằng tay cách sử dụng trình tạo cấu hình. Holy crap.
- 1. Thời gian chờ kết nối và thời gian kết nối
- 2. WebSocket Thời gian chờ kết nối
- 3. Thời gian chờ kết nối socket Python
- 4. Thời gian chờ kết nối socket Android
- 5. HttpURLCài đặt thời gian chờ kết nối
- 6. Không thể kết nối với MySQL với JDBC - Thời gian chờ kết nối - Ubuntu 9.04
- 7. thuộc tính thời gian chờ kết nối trong chuỗi kết nối bị bỏ qua
- 8. "Thời gian chờ kết nối" trong chuỗi kết nối máy chủ sql là gì?
- 9. Thời gian chờ trên kết nối URLLoader.load là gì?
- 10. thời gian chờ kết nối curl không hoạt động
- 11. Thời gian chờ kết nối AWS Lambda với Elasticache
- 12. cách giảm giá trị thời gian chờ kết nối ssh
- 13. Mercurial trên thời gian chờ kết nối IIS7
- 14. Khung chơi: Thời gian chờ kết nối WebSocket
- 15. Cài đặt PHP MySQL Thời gian chờ kết nối
- 16. Thời gian chờ kết nối Couchbase với Java SDK
- 17. Cách tạo thời gian chờ kết nối với python SocketServer
- 18. NHibernate: cách đặt thời gian chờ kết nối
- 19. Set kết nối thời gian chờ cho Parse truy vấn
- 20. Thời gian kết nối Out
- 21. Phân biệt giữa kết nối bị từ chối và kết nối hết thời gian
- 22. Thời gian chờ kết nối Grails trong thời gian tải lên lớn
- 23. Kết nối vùng kết nối Django và các trường thời gian
- 24. kết nối mongodb hết thời gian lỗi
- 25. Làm cách nào để thay đổi thời gian chờ kết nối Mysql mặc định khi kết nối qua python?
- 26. Android Studio: Đồng bộ hóa không thành công: Đã hết thời gian chờ kết nối: kết nối
- 27. MongoDB: Kết nối tổng hợp và thời gian chờ là gì?
- 28. Vagrant/VirtualBox không có kết nối SSH và thời gian chờ (Windows)
- 29. Thực hành tốt nhất với WCF ChannelFactory và thời gian chờ kết nối
- 30. Nginx + php-fpm: lỗi hết thời gian chờ 504 - thời gian hết hạn (110: Kết nối hết thời gian)
Hãy thử tìm kiếm chúng mà không cần từ khóa apache hoặc java: http://en.wikipedia.org/wiki/Timeout_(computing) –