读取AFNetworking响应标头

时间:2012-09-10 12:13:21

标签: objective-c xcode afnetworking

我正在试图弄清楚如何从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){

}];

3 个答案:

答案 0 :(得分:37)

实现此目的的最简单方法是使用AFHTTPRequestOperation实例的响应属性(不是块的响应对象),该实例在成功和失败块中都可用。

此响应对象是NSHTTPURLResponse的一个实例,您可以向其发送allHeaderFields消息,以获取您请求的所有标头。

答案 1 :(得分:6)

很简单,因为接受的答案实际上没有一个例子:

[operationInstance setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
       NSLog(@"%@", operation.response.allHeaderFields);
}];

答案 2 :(得分:4)

我无法解决它 [[operation response] allHeaderFields]operation.response.allHeaderFields,  因为它给出了编译错误。

我只是将其类型化为(NSDictionary *)并以

的形式访问键值

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