web-dev-qa-db-ja.com

NSURLConnectionの応答ヘッダーからデータを読み取る

サーバー応答で送信されたヘッダーからデータを読み取るにはどうすればよいですか。 NSURLConnectionを使用してリクエストを送信しています。

31
Abhinav

URLがHTTP URLの場合、接続のデリゲートの-connection:didReceiveResponse:メソッドで(または別のメソッドを介して)受け取るNSURLResponseは、NSHTTPURLResponseになり、- -allHeaderFields ヘッダーにアクセスできるメソッド。

NSURLResponse* response = // the response, from somewhere
NSDictionary* headers = [(NSHTTPURLResponse *)response allHeaderFields];
// now query `headers` for the header you want
75
John Calsbeek

私の場合

    NSHTTPURLResponse *response = ((NSHTTPURLResponse *)[task response]);
    NSDictionary *headers = [response allHeaderFields];

良いアプローチ

    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)[task response];
    if ([httpResponse respondsToSelector:@selector(allHeaderFields)]) {
         NSDictionary *dictionary = [httpResponse allHeaderFields];
         NSLog(@"%@", [dictionary description]);
    }
4
Ali