解決で1000ポイント。Webサービスに詳しい方に質問です。とあるWeb API([http://developer.yahoo.com/search/boss/:title=Yahoo BOSS])をPythonから使いたいのですが、APIリクエストの応答にHTTP/1.1 406エラーが出て困っています。この現象は、XREA(UNIX系レンタルサーバー,python 2.4.3)とWindows(python 2.5.2)、双方の実行において変わりません。またURLの内容自体は正常で、ブラウザから直接打ち込む限りは正常に応答します。


内容の詳細については下記ブログを参照してください。
http://d.hatena.ne.jp/taos/20080722
http://d.hatena.ne.jp/taos/20080721

回答の条件
  • 1人2回まで
  • 登録:2008/07/21 20:59:31
  • 終了:2008/07/21 23:09:49

回答(2件)

id:rubikitch No.1

るびきち回答回数120ベストアンサー獲得回数222008/07/21 22:02:21

ポイント35pt

ブラウザからは正常に動作するならば、プロキシサーバを立てるなどして送信しているヘッダの内容を確認してみましょう。同じヘッダを送信してうまくいきますか?

AppIDがないので動作確認できませんが、User-Agentの設定が必須だったり、Acceptヘッダが問題かもしれません。

僕もw3mでアクセスして406エラーだったことがあって、Acceptヘッダを正しく設定したら406が直りました。

http://d.hatena.ne.jp/rubikitch/20080626/1214472446

id:taos

rubikitchさん、コメントありがとうございますm(_ _)m

見よう見まねで、

req.add_header('user-agent', 'open-uri/python')

req.add_header('accept-encoding', 'none')

req.add_header('accept', '')

を追加してみましたが、結果は変わりませんでした。。。

Webプログラミングは方言が多くて難しいですね。

2008/07/21 22:14:02
id:rubikitch No.2

るびきち回答回数120ベストアンサー獲得回数222008/07/21 22:32:52

ポイント35pt

コメントに書けないので回答になってしまいますが…

ええっと、ブラウザが発するヘッダと同じものにしてみてください。 もちろんUser-Agentもブラウザのものに。

送信しているヘッダを見るにはプロキシじゃなくてもLiveHTTPHeadersなんかがよさげです。

http://www.atmarkit.co.jp/fsecurity/rensai/securitytips/030liveh...

id:taos

rubikitchさん、コメントありがとうございますm(_ _)m

ご提示いただいたLiveHTTPHeadersですが、残念ながら当方の環境ではインストールが適いませんでした。

現在別の筋から情報を頂いているので、そちらの検証に注力したいと思います。

はてなQuestionは今回が初めてでなにかと不便をかけたかと存じますが、今後もよろしくお願いいたします。

2008/07/21 22:47:24

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません