2011-09-13 6 views
0
NSString* HTML = [NSString stringWithContentsOfURL:url usedEncoding:&enc error:&error]; 

가 잘 작동 stringWithContentsOfURL로 리디렉션하지만 리디렉션이 있다면 나는 리디렉션 된 페이지의 URL을 알아야합니다.URL 가져 오기 후

아이디어가 있으십니까?

감사합니다 ~~

+0

이 경우이 URLString는 (HTML)이있는 UIWebView 나있는 NSURLConnection에 사용하고 있습니까? – 0x8badf00d

답변

2

당신은 아마있는 NSURLConnection을 사용하고 stringWithContesOfURL 방법을 사용하는 것보다 수동이 아니라로드 할 것입니다. 그런 다음 연결에 URLConnectionDelegate를 설정할 수 있습니다. 당신이 리디렉션하면 연결이 대리자에이 메소드를 호출합니다

- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse 

요청 인수는 리디렉션되고있는 URL을 제공합니다. 그것을 검사하고 원하는 것을 할 수 있습니다. 리디렉션을 계속 허용하려면 위임자의 메서드에서 리디렉션을 반환해야합니다. 여기

+0

내가 동 기적으로 할 수 싶습니다 있지만 NSURLConnection 허용하지 않는 것 및 리디렉션 URL을 ... 또한 NSURLConnection 인코딩, 모든 방법을 알아낼 수있을 것으로 예상합니다. 그렇게? – itgiawa

+0

NSURLConnections를 사용하는 경우 리다이렉트 정보를 얻는 것은 거의 비동기 호출을 요구합니다. 제 3 자 라이브러리 중 하나를 들여다 보면 그들이 원하는 것을 제공하는지 확인할 수 있습니다. –

+0

인코딩을 알아내는 것까지 요청을하기 전에 무엇인지 모를 경우 HTTP 응답의 Content-Type 헤더를 항상 볼 수 있으며 설정되어 있으면 인코딩을 결정하기 위해 Content-Type 헤더를 사용할 수 있습니다. 설정되지 않은 경우 일부 기본값을 가정해야합니다. –

1

당신은 (동기 방식) 이동 :

NSURLResponse *response; 
NSError *error; 
NSURLRequest *request = [[NSURLRequest alloc] initWithURL:[NSURL URLWithString:@"URL_STRING"]]; 
[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error]; 
NSLog(%@,response.URL); 
+1

매력처럼 작동 .. 정정 만하면 NSMutableURLRequest를 사용할 필요가 없을 수도 있습니다. NSURLRequest를 사용하여 동일한 결과를 얻을 수도 있습니다. 그러나 열쇠는 returningResponse를 캡쳐합니다. –