2011-02-06 10 views
3

Htmlunitに問題があり、JavaScriptを無効にしてgetpageを呼び出す前にタイムアウトを10000に設定しましたが、タイムアウト後に例外が予想されます。JavaScriptを無効にし、setTimeoutを10000に設定したWebClient

私は2009年に誰かが同じ問題(Connection timeout not working)を持っていたことを知ったが、彼は "Connection timeout not working"とタイムアウトのいくつかの値については不平を言っていたが、今は2011年までに何の答えも得られなかった。

誰かhereは例外がスローされたことについて質問していましたが、それは常にそれを投げないと思います。私はApache HttpClient setTimeoutから回答を得ることができません。タイムアウトで停止することを尋ねる別の人物がTerminate or Stop HtmlUnitにあります。あなたがしようとしている場合は、それがどのように狂っ見ることができます

:HttpUnitは1.6.2と

milisecReqTimeout = 10; 
while(true) 
{ 
    _webclient.setTimeout(milisecReqTimeout); 
    milisecReqTimeout = milisecReqTimeout + 10; 
    _htmlpage = _webclient.getPage(url); 
} 
+0

ファイルにあなたのクッキーのセッションデータを保存し、多くのWebClientインスタンス上で並列ロードにそれを処理回し多分それはあまりにもあなたを助けることができます。http://stackoverflow.com/questionsを/ 2237286/how-to-save-htmlunit-cookies-to-a-file – aboutuigrid

+0

あなたはそれを使用することもできます[2 HtmlUnitのWebクライアントは同じCookieを使用する方法]:http://stackoverflow.com/questions/3043745/how -to-make-2-htmlunits-webclients-use-same-cookies – aboutuigrid

+0

なぜHtmlUnitをJaxerに置き換えないのですか? –

答えて

0

私が見つけたが、これらの

final HttpClient client = new HttpClient(); 
    final GetMethod method = new GetMethod(pUrl); 

    client.setConnectionTimeout((int) timeout); 
    client.setTimeout((int) timeout); 

    final int statusCode = client.executeMethod(method); 

を設定するには、トリックを行うように見えました。どちらも廃止予定のメソッドです。 :(

+0

ありがとう、ブラジルでは今ここブラジルでは00:19だが、明日はそれを試してみよう、それは廃止されたことを私は将来的にhtmunit層を変更することを願っていない。 – metoo

+0

問題ありません。それが役に立てば幸い。 – Will

3

 _thewebclient.setWebConnection(new HttpWebConnection(_thewebclient) { 
    @Override 
    protected synchronized AbstractHttpClient getHttpClient() { 
     AbstractHttpClient client = super.getHttpClient(); 
     if (_TimeoutCliSocket > 0) { 
      //Sets the socket timeout (SO_TIMEOUT) in milliseconds to 
      //be used when executing the method. 
      //A timeout value of zero is interpreted as an infinite timeout. 
      //Time that a read operation will block for, before generating 
      //an java.io.InterruptedIOException 
      client.getParams().setParameter("http.socket.timeout", 
                 _TimeoutCliSocket); 
     } 
     if (_TimeoutCliConnection > 0) { 
      //The timeout in milliseconds used when retrieving an 
      // HTTP connection from the HTTP connection manager. 
      // Zero means to wait indefinitely. 
      client.getParams().setParameter("http.connection-manager.timeout", 
                _TimeoutCliConnection); 
     } 
     client.getParams().setParameter("http.tcp.nodelay", true); 
     return client; 
    } 
}); 

さようなら

+0

これはうまくいく!そのような長い時間の後に答えを探して!ほぼ諦めた。ありがとう! –

+0

私はそれを取り戻す。結局のところそれがないように見えます。スレッドはまだスタックしています。 –

関連する問題