读取AFNetworking响应标头

lix*_*lix 14 xcode objective-c 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){

}];
Run Code Online (Sandbox Code Playgroud)

Bar*_*obs 37

完成此操作的最简单方法是使用成功和失败块中都可用的AFHTTPRequestOperation实例的响应属性(不是块的响应对象).

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

  • 如果有人想知道如何做到这里:这里的'AFHTTPRequestOperation`对象为`AFHTTPRequestOperation*operation`.要获取http头信息,请声明`NSDictionary`和`operation.response.allHeaderFields`的变量.然后你可以使用`NSLog`这样打印出来``dictionary.description`. (6认同)
  • 这有点不透明.你们中的任何一个人是否愿意扩展这个主题,或许可以解释一下这些机制?作为AFNetworking的新手,我在理解如何访问可访问性状态和实现适当的代码方面遇到了一些困难. (2认同)

bra*_*ipt 6

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

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