2011-12-20 6 views
0

以下のコードをWebHarvest設定ファイルで使用して、WebHarvest(WebharvestはJakarta HttpClientを使用します)のhttp要素のタイムアウトを定義しています。
しかし、私はそれを20000に設定していますが、タイムアウトに達するまでには約40-50秒かかります!
私はそれを30000タイムアウトに設定しても、(私が待っていた少なくとも2分で)届くことはありません!!
私は応答待ち時間を制限する必要があります。httpタイムアウトをjakarta HttpClientに設定する

<var-def name="WTimeOut">20000</var-def> 
<script language="javascript"> 
     var tmot=WTimeOut.toString(); 
     http.client.params.soTimeout = tmot; 
     http.client.params.connectionManagerTimeout = tmot; 
     http.client.httpConnectionManager.params.connectionTimeout = tmot; 
</script> 

私はまた、このコードでのHttpClient oをJavaコード自体を経由して、それを実行しようとしました:

HttpClient whClient = scraper.getHttpClientManager().getHttpClient(); 
whClient.getParams().setParameter("http.connection-manager.timeout", (long)20000); 
whClient.getParams().setParameter("http.socket.timeout",(int)20000); 

しかし、私は同じ結果を得ました!
thisとして:

SO_TIMEOUTはHTTP 接続

上の不活動がある場合にのみにキックされますので、私は、応答を待っているに時間制限を設定するために何ができるのでしょうか?

おかげ

答えて

1

http.socket.timeout二つの連続するパケット間で待機する時間を設定します。したがって、データが非常にゆっくりと入ってきても、タイムアウトを引き起こさないほど速い場合、接続は切断されません。

また、接続が確立するまで待機する時間を制限するために、http.connection.timeoutを設定することもできます。

ただし、要求全体の長さに厳しい制限を設定する組み込みの方法はありません。

関連する問題