2012-03-31 2 views
9

단축 URL (예 : t.co/12345678)입니다. NSURLConnection을 통해 전체 페이지를로드하지 않고도 리디렉션을 해결하고 싶습니다. 분명히 NSURLConnection을 보내고 응답을 기다리는 것으로 얻을 수는 있지만 전체 페이지를 먼저로드합니다. 리디렉션 URL 만 찾고 있습니다. 이것이 가능한가? 그렇다면 어떻게?NSURL의 리디렉션을 해결 하시겠습니까?

=============

편집 : amleszk에 의해 제안 후손를 들어, 여기에 솔루션입니다.

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:shortenedURL 
             cachePolicy:NSURLRequestReloadIgnoringCacheData 
            timeoutInterval:15.0f]; 

[request setHTTPMethod:@"HEAD"]; 

[NSURLConnection sendAsynchronousRequest:request 
            queue:[NSOperationQueue mainQueue] 
         completionHandler:^(NSURLResponse *response, NSData *data, NSError *error) { 
          NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse*)response; 
          NSURL *resolvedURL = [httpResponse URL]; 
          NSLog(@"%@", resolvedURL); 
         }]; 

답변

5

같은이 같은 방법 finding the download size of a URL (Content-Length)

하지만 당신이 [NSURLResponse에 statusCode]를 원하는 = 301/302/303 여기에 위치 헤더 : Getting "Location" header from NSHTTPURLResponse

+0

흠, 반환 된 상태 코드는 200입니다 http 헤더 응답에 리디렉션 URL이 포함되어 있지 않습니다. 응답 URL에는 원래 URL 만 포함되어 있습니다 ... – Keller

+0

죄송합니다. 캐싱 문제였습니다. 매력처럼 일했습니다, 많이 고마워요! – Keller

관련 문제