HTTP错误处理最佳实践iOS

时间:2018-04-04 04:40:41

标签: ios networking error-handling httpresponse nserror

目前正在开发iOS App的网络部分。我正在努力处理错误处理。

让我们举一个简单的例子:做一个登录请求。 (我正在使用 NSURLRequest 并使用 NSURLSessionDelegate
在大多数情况下,我会在请求的响应中获得200 statusCode或401 statusCode。这里没有NSError 但我也可以获得另一个 HTTP StatusCode (例如500内部服务器错误)。或者,我也可以获得 NSError ,例如请求已取消,无Internet连接或其他任何内容。

我的问题是:如果我将那些错误的 Http StatusCode 转换为正确的自定义NSError ,该怎么办?因此,在我的控制器端更容易切换此错误并做出正确反应 而不是首先捕获错误,反应。然后,检查statusCode,做出反应。

通过这种方式,我可以将错误处理推广到我的所有网络请求。 “收到401状态代码?只需退出用户” “如果没有错误,请求就运行良好”。

这种模式可行,但并非在所有情况下都有效。这次我没有在登录表单中正确格式化电子邮件。服务器将为我提供422(不可处理的实体)状态代码。但我仍然需要获取此请求的正文 才能知道我格式错误的哪个字段。

处理这些案件的最佳做法是什么?

0 个答案:

没有答案
相关问题