当ASI-HTTP-Request超时时调用什么委托方法?

M. *_*yan 4 iphone timeout objective-c asihttprequest

我有一个使用ASI-HTTP-Request的大型文件的应用程序,我最近有一个测试人员注意到他们观察到很长的加载延迟应该表现为超时.我有委托方法连接请求失败,但这些似乎没有发生.

我倾注了他们的文档,但没有看到任何具体的东西.

Ale*_*lds 9

ASIHTTPRequest.m,看看-checkRequestStatus方法.

发生超时时,请求失败并显示ASIRequestTimedOutError错误类型:

[self failWithError:ASIRequestTimedOutError];
Run Code Online (Sandbox Code Playgroud)

所以你应该能够检查委托-requestFailed:方法中返回的错误:

- (void)requestFailed:(ASIHTTPRequest *)request {
    NSLog(@"Error: %@",[[request error] localizedDescription]);
}
Run Code Online (Sandbox Code Playgroud)

阅读源代码以了解事物是如何工作的,这是一个好主意.文档很棒,但并不总是与源代码同步.

  • 不,在块之间没有数据进入后开始超时.如果下载3MB需要10秒钟,然后请求等待,等待,等待,并且没有更多数据进入...那是超时计时器启动时.因此,在该示例中,从请求开始到超时错误将是20秒. (2认同)