1

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 エラーが発生しました。「Accept」ヘッダーを削除したら動くようになりました。Google開発者キーがなくても機能します。

4

1 に答える 1

1

サーバーがあなたを禁止しているようです。セキュリティ パラメータを渡すのを忘れた場合や、一部のヘッダー値が間違っている場合に発生する可能性があります。

HTTP code 403   Forbidden 

Firefox モジュールのLiveHTTPHeaderを使用してリクエストを送信しようとしています。そして、YouTube API は POST リクエストを受け付けず、GET のみを受け付けていることがわかりました。

POSTメソッドで送信すると、取得します403 forbiden Target feed is read-only

したがって、メソッドを変更してくださいGET

[request setHTTPMethod:@"GET"];

ヘッダー値の一部を削除しても、pb が役に立たない場合でも削除できます。

于 2011-11-21T09:43:33.923 に答える