14

AFNetworking リクエストから応答ヘッダーを読み取る方法を見つけようとしていますか?

次のスニペットで可能ですか、それとも別のアプローチを取る必要がありますか?

// Create client
AFHTTPClient *client = [[AFHTTPClient alloc] initWithBaseURL:[NSURL URLWithString:@"http://example.com/"]];

// Send request
[client getPath:@"/test" parameters:nil success:^(AFHTTPRequestOperation *operation, id response) {

} failure:^(AFHTTPRequestOperation *operation, NSError *error){

}];
4

4 に答える 4

38

これを実現する最も簡単な方法は、成功ブロックと失敗ブロックの両方で使用可能なAFHTTPRequestOperationインスタンスの応答プロパティ(ブロックの応答オブジェクトではない)を使用することです。

この応答オブジェクトはNSHTTPURLResponseallHeaderFieldsのインスタンスであり、要求のすべてのヘッダーをフェッチするためのメッセージを送信できます 。

于 2012-09-10T12:51:44.963 に答える
6

簡単に言えば、受け入れられた回答には実際には例がないためです。

[operationInstance setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
       NSLog(@"%@", operation.response.allHeaderFields);
}];
于 2014-09-18T19:36:59.533 に答える
4

コンパイルエラーが発生したため、[[operation response] allHeaderFields]またはで解決できませんでした 。operation.response.allHeaderFields

私はそれを型キャストし(NSDictionary *)、キー値に次のようにアクセスしました

[[(NSDictionary *)operation valueForKey: @"response"] valueForKey: @"allHeaderFields"]

于 2014-05-20T07:52:38.417 に答える