我正在向我的服务器发送请求,并收到状态代码500
为什么系统调用connectionDidFailWithError
connectionDidFinishLoading
这两种方法都在我的类委托中实现
答案 0 :(得分:3)
HTTP状态代码错误不被视为连接错误。如果你得到500,HTTP连接没有遇到任何错误。它收到了一个合法的回复:一个500状态代码。 didFailWithError:
用于拒绝连接"错误。您可以找到NSURLErrorDomain
和CFNetworkErrors
错误here的完整列表。
根据this blog post,NSURLConnection
类最初是为2003年Safari的第一个版本编写的,NSURLConnection
的原始目标仍然在其API设计中显示:
Web浏览器不需要区分HTTP状态代码。 无论响应的状态代码是200,404还是500,都可以 浏览器总是能够显示响应体。 因此,NSURLConnection报告404响应成功。在 相比之下,Web服务客户端需要处理4xx或5xx响应 作为一个错误。