【发布时间】:2010-07-29 18:04:43
【问题描述】:
我有一个对大文件使用 ASI-HTTP-Request 的应用程序,最近我有一个测试人员注意到他们观察到很长的加载延迟,应该表现为超时。我为请求失败连接了委托方法,但这些似乎没有发生。
我翻阅了他们的文档,但没有看到任何具体内容。
【问题讨论】:
标签: iphone objective-c timeout asihttprequest
我有一个对大文件使用 ASI-HTTP-Request 的应用程序,最近我有一个测试人员注意到他们观察到很长的加载延迟,应该表现为超时。我为请求失败连接了委托方法,但这些似乎没有发生。
我翻阅了他们的文档,但没有看到任何具体内容。
【问题讨论】:
标签: iphone objective-c timeout asihttprequest
在ASIHTTPRequest.m 中,查看-checkRequestStatus 方法。
发生超时时,请求会失败并出现ASIRequestTimedOutError 错误类型:
[self failWithError:ASIRequestTimedOutError];
所以您应该能够检查委托的-requestFailed: 方法中返回的错误:
- (void)requestFailed:(ASIHTTPRequest *)request {
NSLog(@"Error: %@",[[request error] localizedDescription]);
}
最好通读源代码以大致了解事情的运作方式。文档很棒,但并不总是与源代码同步。
【讨论】:
ASIHTTPRequest 中的现有值,而不是创建自己的NSTimer 实例,不断对secondsSinceLastActivity 属性求和以生成一个自定义overallActivityTime 属性。在-checkRequestStatus 中,如果overallActivityTime 高于某个预设阈值,您可能会因自己的自定义错误而失败。