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"헤더를 삭제하면 작동하게되었습니다. 그것은 구글 개발자 키 없이도 작동합니다.
HTTP는 브라우저 내에서 작동하는 경우 HTTP입니다. 헤더 값을 확인하는 경우 장치와 관계없이 작동해야하므로 브라우저에서 Google developper 키가 필요하지 않은 경우에는 동일합니다. 당신이 api 방법을 사용하지 않는 경우 captcha 같은 google 캘린더로 여러 webapp을 알고 있어야, 같은 IP에서 여러 요청 후. 당신에게 튜브가 당신에게 결코 물어 보지 않도록하십시오. –