3

私は失敗した場合に備えてこのコードを持っています:

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

返された文字列をログに記録したいと思います。どの変数からそれをどのように行う必要がありますか?

4

1 に答える 1

1

したがって、通常はエラーを出力する必要があります。これにより、サーバーがエラーとして報告しているものがすべて出力されます。失敗メッセージは、予期していた間違ったタイプ(application / jsonではなくplaintext)を受信した場合、またはステータスコードが(404、401)のように>400の場合にトリガーされます。

エラーチェックを行う場合は、応答ヘッダーにステータスコードを設定してから比較するresponse.statusCodeか、データを返すときに成功ブロックでエラーチェックを行う必要があります。

どうしても応答からresponseStringにアクセスする必要がある場合はoperation.responseString、操作が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 に答える