为什么没有调用连接didFailWithError?

时间:2014-05-28 12:41:40

标签: ios web-services connection

我正在向我的服务器发送请求,并收到状态代码500

为什么系统调用connectionDidFailWithError

而不是调用connectionDidFinishLoading

这两种方法都在我的类委托中实现

1 个答案:

答案 0 :(得分:3)

HTTP状态代码错误不被视为连接错误。如果你得到500,HTTP连接没有遇到任何错误。它收到了一个合法的回复:一个500状态代码。 didFailWithError:用于拒绝连接"错误。您可以找到NSURLErrorDomainCFNetworkErrors错误here的完整列表。

根据this blog postNSURLConnection类最初是为2003年Safari的第一个版本编写的,NSURLConnection的原始目标仍然在其API设计中显示:

  

Web浏览器不需要区分HTTP状态代码。   无论响应的状态代码是200,404还是500,都可以   浏览器总是能够显示响应体。   因此,NSURLConnection报告404响应成功。在   相比之下,Web服务客户端需要处理4xx或5xx响应   作为一个错误。