ios - 如何使用 AFNetworking 2.0 处理 Parse.com Rest API 错误

标签 ios parse-platform afnetworking-2 nserror

我正在处理在我的 IOS 应用程序中执行登录时从 Parse.com 收到的错误。我尝试使用错误的密码登录并使用 AFNetworking 更正用户名

AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
NSDictionary *parameters = @{my parameters};
[manager POST:@"{login url}" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
    code
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"Error: %@", error.localizedDescription);  <-- this line gets processed
}];

日志说

Request failed: not found (404)

我知道这意味着密码错误,但它不应该更具描述性吗?我如何处理其他错误(如错误请求)?用户难道不应该知道请求失败或错误的原因吗?

编辑: 这是我尝试使用错误密码登录时 Parse 的响应

{
AFNetworkingOperationFailingURLResponseErrorKey = "<NSHTTPURLResponse: 0x15571820> { URL: https://api.parse.com/1/login?password=pqpqpq&username=lalala%20namaku%20panjang%20sekali%20lhoooooooooooo } { status code: 404, headers {\n    \"Access-Control-Allow-Origin\" = \"*\";\n    \"Access-Control-Request-Method\" = \"*\";\n    Connection = \"keep-alive\";\n    \"Content-Encoding\" = gzip;\n    \"Content-Length\" = 68;\n    \"Content-Type\" = \"application/json; charset=utf-8\";\n    Date = \"Wed, 16 Jul 2014 05:49:49 GMT\";\n    Server = \"nginx/1.4.4\";\n    \"X-Parse-Platform\" = G1;\n    \"X-Runtime\" = \"0.113695\";\n} }";
NSErrorFailingURLKey = "https://api.parse.com/1/login?password=pqpqpq&username=lalala%20namaku%20panjang%20sekali%20lhoooooooooooo";
NSLocalizedDescription = "Request failed: not found (404)";
}

我怎么知道这意味着找不到与用户名和密码匹配的用户对象,或者找不到 URL ( https://api.parse.com/1/login?password=pqpqpq&username=lalala%20namaku%20panjang%20sekali%20lhoooooooooooo)?

最佳答案

即使它返回的是 http 代码 404,正文也是以 json 形式设置的,例如 {"code":101,"error":"无效登录参数"} ,

(例如此处列出的值 http://parse.com/docs/dotnet/api/html/T_Parse_ParseException_ErrorCode.htm)。由于代码没有列出确切的 url 以及你如何设置标题,所以很难说出哪里出了问题 否则在这里。 你可以去https://parse.com/docs/rest#users-login并查看 CURL 的代码示例,它会告诉您如何调用登录 url,它通常会以 JSON 错误描述作为响应。

您还可以检查如何从 AFNetworking 2.0 AFHTTPSessionManager: how to get status code and response JSON in failure block? 的 HTTP 404 获取正文

关于ios - 如何使用 AFNetworking 2.0 处理 Parse.com Rest API 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24734340/

相关文章:

ios - 我想在 IOS 中只显示一次登录屏幕

ios - 如何解决 SwiftUI Tap 冲突?

ios - 如何从 NSDictionary (iOS) 中的键/值对中提取值

ios - SWIFT Apple Mach-O 链接器错误 "_OBJC_CLASS_$_BFExectur"

ios - 链接背景 NSURLSession 上传

ios - UIImagePickerController 与 UIImagePickerControllerSourceTypeCamera 崩溃

ios - 使用 swift 从 parse.com 将数据和图像查询到 TableView 中

ios - PFQuery 与 UITableView 中的多个数组

ios - 使用 AFOAuth2Manager 进行身份验证

ios - 如何允许用户在 iOS 中使用 AFNetworking 信任和固定自签名 SSL 证书