0

ほとんどの場合failMethod、私はRequest timed out. どうしてこれなの?それに対する解決策はありますか?

私は使っているASIHTTPRequest

[self setNetworkQueue:[ASINetworkQueue queue]];
[[self networkQueue] setDelegate:self];
[[self networkQueue] setShouldCancelAllRequestsOnFailure:NO];
[[self networkQueue] setRequestDidFinishSelector:@selector(successMethod:)];
[[self networkQueue] setRequestDidFailSelector:@selector(failMethod:)];    
ASIHTTPRequest *r = [ASIHTTPRequest requestWithURL:[NSURL URLWithString:@"http://www.example.com/wenb"]];
[r setUseKeychainPersistence:YES];
[[self networkQueue] addOperation:r];    
[[self networkQueue] go];
4

2 に答える 2

3

Request timed out通常、データを取得しようとしているサーバーの応答に時間がかかりすぎたため、リクエストが終了したことを意味します (投稿した URL は、到達しようとしている URL ではないと思います)。

解決策は 2 つあります。できれば、リクエストの完了に時間がかかる理由を突き止めてくださいASIHTTPRequest。これは、デフォルトで 10 秒のタイムアウトがあり、かなり長いためです。もう 1 つの簡単なオプションは、タイムアウトをたとえば 30 秒に増やすことです。これは次のように行うことができます。

[ASIHTTPRequest setDefaultTimeOutSeconds:30]

おそらく、電話以外の方法でリクエストを実行して、所要時間を確認し、問題が何であるかをより明確に把握してみてください。

于 2012-02-19T16:59:54.330 に答える
1

私にとって、これは携帯電話会社によって異なります。同じ問題が発生し、同じアプリケーションを使用して別のキャリア ネットワークでテストしました。私には、ネットワーク プロバイダーがさまざまな種類の接続 (プロキシ) を使用しているようです。電話のログを見ると、メール クライアントからも同じエラーが表示されます。1 つの解決策は、単純なNSURLConnectionwithHTTPメソッドを使用することです。

于 2012-02-20T12:25:11.707 に答える