0

以下のコードを使用してレスポンスフィールドとヘッダーフィールドを取得しました。URLからヘッダーフィールドを取得できません

NSMutableURLRequest *NSRequest; 
    NSRequest = [[NSMutableURLRequest alloc] init]; 
    [NSRequest setURL:[NSURL URLWithString:@"http://72.52.65.142:8083/auth"]]; 
    [NSRequest setHTTPMethod:@"HEAD"]; 

    [NSURLConnection sendAsynchronousRequest:NSRequest queue:[NSOperationQueue currentQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 

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

ただし、ログは無効です。

上記のリクエストからヘッダーフィールドを取得するにはどうすればよいですか?

+0

お試しください http://stackoverflow.com/questions/4809047/nsurlrequest-setting-the-http-header – nynohu

答えて

0

非同期要求の場合は、コールバックをconnection:didReceiveResponse:にする必要があります。 、NSURLResponse二番目のパラメータを使用しallHeaderFieldsを取得するには、以下のようなNSHTTPURLResponseにキャスト:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response { 

    NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response; 

    if ([response respondsToSelector:@selector(allHeaderFields)]) { 

     NSDictionary *dictionary = [httpResponse allHeaderFields]; 
     NSLog([dictionary description]); 

    } 
} 

てみてください、それが役立つかどうかをチェック!

関連する問題