2012-01-31 13 views
0

コードは次のとおりですが、10秒経過してもタイムアウトしない理由はわかりません。何か案が?ASIHTTPRequestタイムアウトが機能しない

__block ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:sourceURL]; 
         [request setTimeOutSeconds:5.0]; 
         [request setDelegate:self]; 
         [request setCompletionBlock:^{ 
          //some code 
         }]; 

         [request setFailedBlock:^{ 
          //some code 

         }]; 


         self.currentRequest_ = request; 
         [self.currentRequest_ startAsynchronous]; 


    - (void)requestFailed:(ASIHTTPRequest *)request { 
     NSLog(@"FAILED"); 
    } 

答えて

1

おそらくリクエストは正常に完了しましたか?

その他の可能性として、少なくとも5秒ごとにデータが受信されていますが、完全なデータはまだ受信されていません。 ASIは、タイムアウト期間中に何も受信されない場合にのみタイムアウトします。したがって、データが絶えず到着すると、要求はタイムアウトしません。

+0

aha ...私はそれが起こったと思います。データは絶え間なく引き出されていると思いますが、それは遅いです。データが受信されたかどうかを無視して停止する方法はありますか? – xonegirlz

+0

ASIHTTPRequestには何も組み込まれていません。あなたはNSTimerを自分でセットアップすることができます。これはおそらく最も簡単な方法です。 – JosephH

0

私が代わりにASINetworkQueueNSOperationQueueのサブクラス)に(NSOperationのサブクラスである)要求を追加...あなたは-[ ASIHTTPRequest startAsynchronous]を呼び出すとは思いません。 HTH

+0

また、ASINetworkQueueは一時停止状態で開始するので、リクエストを追加した後、必ず[ - [ASINetworkQueue go]を呼び出してください。あなたはメソッドが呼ばれているものを調べなければならないかもしれません..私は忘れます。 – nielsbot

+0

どういう意味ですか? – xonegirlz

関連する問題