首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >HTTP状态代码0-错误Domain=NSURLErrorDomain?

HTTP状态代码0-错误Domain=NSURLErrorDomain?
EN

Stack Overflow用户
提问于 2013-11-08 19:40:05
回答 12查看 335.4K关注 0票数 103

我正在做一个iOS项目。

在这个应用程序中,我从服务器下载图像。

问题:

当我下载图片时,我得到了Request Timeout。根据文档,请求超时的HTTP状态码为408

但是在我的应用程序中,我得到了HTTP状态码0,错误如下

错误Domain=NSURLErrorDomain代码=-1001“请求超时。”UserInfo=0xb9af710 {NSErrorFailingURLStringKey=http://xxxx.com/resources/p/PNG/1383906967_5621_63.jpg,NSErrorFailingURLKey=http://xxxx.com/resources/p/PNG/1383906967_5621_63.jpg,NSLocalizedDescription=The请求超时。,NSUnderlyingError=0x13846870“请求超时。”}

在互联网上进行搜索时,我没有找到有关HTTP状态代码0的信息。

有人能给我解释一下吗?

EN

回答 12

Stack Overflow用户

回答已采纳

发布于 2013-11-08 23:23:07

没有HTTP状态代码0。您看到的是您正在使用的API/库返回的0。您必须查看文档以了解这一点。

票数 106
EN

Stack Overflow用户

发布于 2015-04-28 07:08:03

NSHTTPURLResponse对象中的状态代码为0通常表示没有响应,这可能是由于各种原因造成的。服务器永远不会返回状态0,因为这不是有效的HTTP状态代码。

在您的示例中,您似乎得到的状态代码为0,因为请求超时,而0只是该属性的默认值。超时本身可能是由于各种原因,例如服务器没有及时响应、被防火墙阻止或整个网络连接断开。通常在后者的情况下,尽管手机足够智能,可以知道它没有网络连接,而且会立即失败。但是,它仍然会失败,并显示一个明显的状态代码0。

请注意,在状态代码为0的情况下,将在返回的NSError对象中捕获真正的错误,而不是在NSHTTPURLResponse中捕获。

在我的经验中,HTTP status 408是相当不常见的。我自己从来没有遇到过这样的情况。但它显然是在以下情况下使用的:客户端需要维护到服务器的活动套接字连接,服务器正在等待客户端通过打开的套接字发送更多数据,但在给定的时间内没有发送更多数据,服务器以408状态代码结束连接,本质上是告诉客户端“您花费了太长时间”。

票数 81
EN

Stack Overflow用户

发布于 2013-11-08 19:45:02

响应为空。大多数情况下,代码将使用1xx、2xx、3xx、4xx、5xx进行统计。

List of HTTP status codes

票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19858251

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档