我有一个使用ASI-HTTP-Request处理大文件的应用程序,最近一位测试人员注意到他们观察到非常长的加载延迟,应该表现为超时。我已经连接了请求失败的委托方法,但似乎这些方法并没有发生。
我仔细阅读了他们的文档,但没有看到任何具体的内容。
我有一个使用ASI-HTTP-Request处理大文件的应用程序,最近一位测试人员注意到他们观察到非常长的加载延迟,应该表现为超时。我已经连接了请求失败的委托方法,但似乎这些方法并没有发生。
我仔细阅读了他们的文档,但没有看到任何具体的内容。
ASIHTTPRequest.m
文件中,查找-checkRequestStatus
方法。
当出现超时时,请求将失败并显示ASIRequestTimedOutError
错误类型。[self failWithError:ASIRequestTimedOutError];
所以你应该能够在委托的-requestFailed:
方法中检查返回的错误:
- (void)requestFailed:(ASIHTTPRequest *)request {
NSLog(@"Error: %@",[[request error] localizedDescription]);
}
阅读源代码有助于了解其工作原理。文档很好,但并不总是与源代码同步。
ASIHTTPRequest
中现有的值,而不是创建自己的NSTimer
实例,不断累加secondsSinceLastActivity
属性以生成自定义的overallActivityTime
属性。在-checkRequestStatus
中,如果overallActivityTime
超过预设阈值,你可以使用自己的自定义错误来失败。 - Alex Reynolds