AFHTTPRequestOperation 不会调用成功或失败块的可能场景都有哪些?

Posted

技术标签:

【中文标题】AFHTTPRequestOperation 不会调用成功或失败块的可能场景都有哪些?【英文标题】:Which are the possible scenarios in which AFHTTPRequestOperation will not call success or failure blocks?AFHTTPRequestOperation 不会调用成功或失败块的可能场景有哪些? 【发布时间】:2012-12-14 20:19:06 【问题描述】:

ios 项目上工作,使用 AFNetworking 构建它,发现对于某些请求,AFHTTPRequestOperation 不会调用成功或失败块。

具体情况是当我们尝试下载服务器中不存在的 pdf 文件时:

http://www.consejotransparencia.cl/data_casos/ftp_casos/C911-12/C911-12_Decisión_Web.pdf

AFHTTPRequestOperation 最终什么都不做,应用卡住了。

我们的目标是处理这些错误,而不是让应用卡住。

有谁知道如何处理这个问题?

【问题讨论】:

向我们展示更多代码。我只是自己尝试了确切的 url,然后调用了失败块。 【参考方案1】:

可能是“ó”字符的问题...尝试使用另一个文件名...

【讨论】:

是的,这就是问题所在,NSURL 没有正确生成,所以请求不起作用。这就是为什么从不调用成功或失败的原因,因为请求永远不会起作用。一个简单的错误。非常感谢。 顺便说一下,正确编码URL,检查这个问题:***.com/questions/4145846/…【参考方案2】:

尝试为您的NSURLRequest 设置超时间隔?

initWithURL:cachePolicy:timeoutInterval: 初始化你的NSURLRequest

// sample initialization
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:myURL cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:30.0]; // 30 seconds timeout interval.
AFHTTPRequestOperation *operation = [[AFHTTPRequestOperation alloc] initWithRequest:request];

查看this 处理超时。

【讨论】:

嗨@BioCho,试过了,但没有任何改变。我为超时设置了一个块,但没有任何反应。我认为是因为服务器实际上以 404 响应。

以上是关于AFHTTPRequestOperation 不会调用成功或失败块的可能场景都有哪些?的主要内容,如果未能解决你的问题,请参考以下文章

未知接收者'AFHTTPRequestOperation';你的意思是'AFHTTPRequestSerializer'

Swift错误无法转换类型'(AFHTTPRequestOperation?,AnyObject?)->()的值

AFHTTPRequestOperation setCacheResponseBlock 无法转换类型的值

AFNetworking + AFHTTPRequestOperation 无法保存数组

AFHTTPRequestOperation 超时

AFNetworking 2 使用 AFHTTPRequestOperation 进行身份验证