Чтение заголовков ответов 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){
}];
Ответы
Ответ 1
Самый простой способ добиться этого - использовать свойство ответа (а не объект ответа блока) экземпляра AFHTTPRequestOperation, доступный как в блоках успеха, так и в случае сбоев.
Этот объект ответа является экземпляром NSHTTPURLResponse, и вы можете отправить ему сообщение allHeaderFields
, чтобы получить все заголовки вашего запроса.
Ответ 2
Совершенно просто, поскольку в принятом ответе фактически нет примера:
[operationInstance setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"%@", operation.response.allHeaderFields);
}];
Ответ 3
Я не смог его решить
[[operation response] allHeaderFields]
или operation.response.allHeaderFields
,
поскольку это дало ошибку компиляции.
Я просто привел его к (NSDictionary *)
и получил доступ к ключевым значениям как
[[(NSDictionary *)operation valueForKey: @"response"] valueForKey: @"allHeaderFields"]
Ответ 4
NSDictionary *responseheaders = [HTTPResponse allHeaderFields];
NSString *newtoken = [responseheaders valueForKey:@"Authorization"];