【发布时间】:2010-12-11 07:33:03
【问题描述】:
我在我的应用程序中添加了一个向我的网络服务器发送 POST 请求的功能。我已经对其进行了测试,并且运行良好。但是在某个时刻,当我尝试再次运行该应用程序时,它崩溃了。我发现错误 503 说服务器不可用。我的问题是当我收到此错误时,我应该怎么做才能防止我的应用程序崩溃。
谢谢
【问题讨论】:
我在我的应用程序中添加了一个向我的网络服务器发送 POST 请求的功能。我已经对其进行了测试,并且运行良好。但是在某个时刻,当我尝试再次运行该应用程序时,它崩溃了。我发现错误 503 说服务器不可用。我的问题是当我收到此错误时,我应该怎么做才能防止我的应用程序崩溃。
谢谢
【问题讨论】:
HTTP 标准对此非常明确:所有以 4 开头的错误代码都是客户端错误,所有以 5 开头的错误代码都是服务器端错误。因此,当您收到 503 时,这是 HTTP 服务器返回给您的客户端的错误,告诉您服务器上/服务器有问题,而不是您的客户端或您发送的请求。所以我想知道你的客户端是否真的有什么可以防止这个错误的。如果服务器正确遵守 HTTP 标准,则 5xx 错误意味着您必须查看服务器端日志并找出服务器的问题,然后修复此问题(在服务器上)。如果您发送的请求有任何问题,服务器应该返回一个 4xx 错误代码。
【讨论】:
如果您使用 NSURLConnection API 来执行您的请求(您应该这样做),那么您的代理应该会收到 - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 调用。
在这个方法中,你可以查询 NSURLResponse 的状态码,并根据它的状态采取相应的行动。
例子:
状态 200 = 好的,开始你需要做的事情 状态 503 = 服务器不可用 - 正常失败,取消请求并自行清理。然后你可以再试一次。
【讨论】: