私はApacheの共通のhttpclientライブラリを使用しています。 HTTP要求をプロキシ経由で行うことは可能ですか?具体的には、マルチスレッドのPOST要求に対してプロキシリストを使用する必要があります(今はシングルスレッドのGETリクエストでテストしています)。一般的なHTTPクライアントとプロキシ
私が使用してみました:
httpclient.getHostConfiguration().setProxy("67.177.104.230", 58720);
私はそのコードでエラーが発生します:私はその行を削除すると、予想通り
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)
、すべてが正常に動作します。
あなたは( this exampleから取られた)このようなプロキシを設定することができますHTTPClientの4.1.xのために
本当に可能です。あなたの例外では、どのホストが編集された 'xxxxx'ですか?あなたのプロキシや宛先?なぜあなたは非常に多くの接続が拒否されていますか?プロキシは実際に正しく機能していますか? –
SOCKSプロキシではなくHTTPプロキシを設定しました。 SOCKSはHttpClient 3ではサポートされていません。システムプロパティ 'socksProxyHost'と 'socksProxyPort'を使用することができます。またはHttpComponents HttpClient 4はSOCKSプロキシをサポートしています。 –