2011-11-21 1 views
1

HTML 페이지를 가져 와서 구문 분석하려고합니다.NSURLConnection : HTML 페이지를 받으려고하는데 항상 오류 403이 발생합니다.

나는 항상 403 오류가 http://gdata.youtube.com/feeds/api/videos?q=u_dAYLIG984

NSURL* url = [NSURL URLWithString: fullPath]; 

NSMutableDictionary* headers = [[[NSMutableDictionary alloc] init] autorelease]; 
[headers setValue:@"application/x-www-form-urlencoded;charset=utf-8" forKey:@"Content-Type"]; 
[headers setValue:@"text/html" forKey:@"Accept"]; 
[headers setValue:@"no-cache" forKey:@"Cache-Control"]; 
[headers setValue:@"no-cache" forKey:@"Pragma"]; 
[headers setValue:@"close" forKey:@"Connection"]; 


NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:TIMEOUT_REQUEST]; 
[request setHTTPMethod:@"POST"]; 
[request setAllHTTPHeaderFields:headers]; 

conn = [[NSURLConnection alloc] initWithRequest:request delegate:delegate startImmediately:YES]; 

에 보냅니다. 뭐가 잘못 되었 니 ?

편집 됨 :

나는 http://bbc.co.uk/ 내 요청을 시도하고 잘 작동합니다. 내 문제만을 가진 http://gdata.youtube.com/feeds/api/videos?q=u_dAYLIG984

EDITED2 :

@Christophe Debove, 당신은 맞다. POST에서 GET으로 요청을 변경하고 406 오류가 발생했습니다. "Accept"헤더를 삭제하면 작동하게되었습니다. 그것은 구글 개발자 키 없이도 작동합니다.

+0

HTTP는 브라우저 내에서 작동하는 경우 HTTP입니다. 헤더 값을 확인하는 경우 장치와 관계없이 작동해야하므로 브라우저에서 Google developper 키가 필요하지 않은 경우에는 동일합니다. 당신이 api 방법을 사용하지 않는 경우 captcha 같은 google 캘린더로 여러 webapp을 알고 있어야, 같은 IP에서 여러 요청 후. 당신에게 튜브가 당신에게 결코 물어 보지 않도록하십시오. –

답변

1

서버가 사용자를 금지하는 것 같습니다. 보안 매개 변수를 전달하는 것을 잊었거나 일부 헤더 값이 잘못되었을 때 발생할 수 있습니다.

HTTP code 403 Forbidden 

LiveHTTPHeader firefox 모듈로 요청을 보내려고합니다. 그리고 youtube api가 POST 요청을 받아들이지 않고 GET 만하는 것을 보았습니다.

내가 POST 방법으로 보낼 때 나는 거기에 그들이 PB가 발생하지 않은 경우에도 403 forbiden Target feed is read-only

그래서 GET

[request setHTTPMethod:@"GET"]; 

당신이 당신의 헤더 값의 일부를 제거 할 수 있습니다와 방법을 변경하시기 바랍니다 얻을 편치 않은.

+0

헤더를 추가했지만 도움이되지 않습니다. 문제는 http://gdata.youtube.com/feeds/api/videos에만 해당합니다. – Voloda2

+0

헤더를 추가하거나 바꾸시겠습니까? 도움을 요청 해 주셔서 감사합니다 –

+1

을 대체해야합니다. 헤더를 대체했지만 Google 개발자 키가 필요합니다. 발견 한 솔루션을 다른 사용자에게 제공 할 수있게되었을 때 http://code.google.com/apis/youtube/2.0/developers_guide_protocol.html – Voloda2

관련 문제