Чтение заголовков ответов AFNetworking - программирование
Подтвердить что ты не робот

Чтение заголовков ответов 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){

}];
4b9b3361

Ответ 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"];