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); 
     } 
    }]; 

하지만 로그는 null입니다.

위의 요청에서 헤더 필드를 가져 오는 방법은 무엇입니까?

+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]); 

    } 
} 

시도를하고 도움이 있는지 확인!