我想获取html页面并解析它。
我发送给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];
我总是得到403错误。有什么问题?
编辑:
我在http://bbc.co.uk/上尝试了我的请求,效果很好。我的问题只有http://gdata.youtube.com/feeds/api/videos?q=u_dAYLIG984
EDITED2:
@Christophe Debove,你是对的。我将请求从POST更改为GET并收到406错误。当我删除"接受"头。即使没有谷歌开发人员密钥也可以。
答案 0 :(得分:1)
似乎服务器禁止你。当您忘记传递安全参数或者某些标头值出错时,可能会发生这种情况。
HTTP code 403 Forbidden
我尝试使用LiveHTTPHeader firefox模块发送请求。 我看到youtube api不接受POST请求但只接受GET。
当我使用POST
方法发送时,我得到403 forbiden Target feed is read-only
因此,请使用GET
[request setHTTPMethod:@"GET"];
你可以删除一些标题值,即使它们没有导致pb没用也没用。