2017-10-30 7 views
-1

私はそのようランナブルを実行するExecutorServiceのを持っている:これらの要求が(ランダム1-1000プロキシアドレスを選びだし)プロキシ経由で実行されているのJava 8のApacheのHttpClient - 低速接続

public class Rexecutor implements Runnable { 

    @Override 
    public void run() { 
     while(thisUseAmount.intValue() <= amountToGoal) { 
      try { 
       requests(); 
      } catch (Exception ex) { 
       //blah blah 
      } 
     } 
    } 

    private void requests() throws Exception { 
     <<HttpRequests (Gets, Posts, Puts) through HttpClient>> 
    } 

} 

、時にはそれが「怠惰」プロキシを打ちますそれは遅いです。これを解決するために、数分以上実行していたスレッドのプロキシIPをリセットしています(平均スレッドループは30秒です)。 問題は、このスレッドのプロキシアドレスをx回以上変更しても、まだ遅いです。理由を教えてください。接続速度などを変更できないHttpClientオプションはありますか?

PS。プロキシへのアクセス権を与えることができないため、私はあなたに実際の例を提供することはできません。

答えて

-1

JDKで提供されるデフォルトの代わりにApache HttpClientを使用することをお勧めします。

+0

おおは申し訳ありませんが、私は、ApacheのHttpClientを使用して、もちろんだよ

private HttpClientBuilder client = HttpClientBuilder.create().setRetryHandler(new DefaultHttpRequestRetryHandler(Integer.MAX_VALUE, true)); 

ちょうど、リトライハンドラを追加します:):検索の時間後https://hc.apache.org/httpcomponents-client-ga/examples.html CodeWriter

0

は私が解決策を見つけました。私はそれが1つのHttpClientがあると思ったので私はそれを言及していない:
関連する問題