3

如果失败,我有这个代码:

failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON)

我想记录返回的字符串。我应该从哪个变量中做到这一点以及如何做到这一点?

4

1 回答 1

1

因此,通常您想要打印错误,这将打印您的服务器报告为错误的任何内容。当它收到错误的类型(纯文本而不是 application/json)或状态码 > 400(如 (404, 401) 之类的东西)时,会触发失败消息。

如果您正在进行错误检查,您应该在响应标头中设置状态码,然后将其与返回数据进行比较,response.statusCode或者很可能在您返回数据时,您应该在成功块中进行错误检查。

如果您绝对需要从响应中访问 responseString,您可以使用operation.responseStringwhere 操作是 AF 请求操作。

更新

这是来自https://github.com/AFNetworking/AFNetworking/issues/137的@mattt 的示例:

[operation setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
    NSLog(@"Friend Request Sent");
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
    NSLog(@"[Error]: (%@ %@) %@", [operation.request HTTPMethod], [[operation.request URL] relativePath], operation.error);
}];
于 2012-12-20T16:05:10.430 回答