Tôi đang sử dụng thư viện httpnhient phổ biến của apache. Có thể thực hiện yêu cầu HTTP qua proxy không? Cụ thể hơn, tôi cần sử dụng danh sách proxy cho các yêu cầu POST đa luồng (ngay bây giờ tôi đang thử nghiệm với các yêu cầu GET luồng đơn).HTTPclient và proxy phổ biến
Tôi cố gắng để sử dụng:
httpclient.getHostConfiguration().setProxy("67.177.104.230", 58720);
tôi nhận lỗi với mã:
21.03.2012. 20:49:17 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect
21.03.2012. 20:49:17 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
21.03.2012. 20:49:19 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect
21.03.2012. 20:49:19 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
21.03.2012. 20:49:21 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: I/O exception (java.net.ConnectException) caught when processing request: Connection refused: connect
21.03.2012. 20:49:21 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
INFO: Retrying request
org.apache.commons.httpclient.ProtocolException: The server xxxxx failed to respond with a valid HTTP response
at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1846)
at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590)
at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995)
at org.apache.commons.httpclient.ConnectMethod.execute(ConnectMethod.java:144)
at org.apache.commons.httpclient.HttpMethodDirector.executeConnect(HttpMethodDirector.java:495)
at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:390)
at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
at test.main(test.java:42)
Khi tôi loại bỏ dòng đó, tất cả mọi thứ chạy tốt như mong đợi.
Thực sự là có thể. Trong trường hợp ngoại lệ của bạn, máy chủ lưu trữ nào là 'xxxxx' được biên tập lại? Proxy của bạn hoặc đích đến? Tại sao bạn có quá nhiều kết nối bị từ chối? Proxy của bạn có thực sự hoạt động đúng không? –
xxxxx là máy chủ mà tôi đang gửi yêu cầu, chứ không phải proxy. Proxy sẽ hoạt động. Tôi đang sử dụng loại proxy 5. – dario111cro
Bạn đã định cấu hình proxy HTTP, không phải proxy SOCKS. SOCKS không được hỗ trợ bởi HttpClient 3. Bạn có thể sử dụng thuộc tính hệ thống 'socksProxyHost' và 'socksProxyPort'. Hoặc HttpComponents HttpClient 4 có thể hỗ trợ SOCKS proxy. –