1

私はリクエストを使用していますが、一部のURLは、ブラウザで同じURLを使用した呼び出しとは異なる応答コードを提供します。

例えば:

import requests
req = requests.get('http://www.jordaaninfo.nl')
responsecode = req.status_code
# responsecode == 500

ページhttp://www.jordaaninfo.nlがChrome/FF / Safari経由で利用可能である間、応答コード500を提供します。

ありがとう、ニールズ

4

1 に答える 1

3

私のFirefoxでは、www.jordaaninfo.nlに対しても500ステータスコードが表示されますが、とにかくページが表示されます。これは、Firebugの[ネット]タブで確認できます。Linux上の私のChromiumブラウザは200OKになります。

問題(および解決策)は、リクエストのAccept-Languageヘッダーにあります。どうやら、サーバーにはこの点で特別なニーズがあります;-)

問題と解決策はwgetで実証できます:

$ wget 'http://www.jordaaninfo.nl/'
--2012-11-20 23:15:20--  http://www.jordaaninfo.nl/
Resolving www.jordaaninfo.nl... 87.250.155.10
Connecting to www.jordaaninfo.nl|87.250.155.10|:80... connected.
HTTP request sent, awaiting response... 500 Internal Server Error
2012-11-20 23:15:22 ERROR 500: Internal Server Error.

$ wget --header="Accept-Language: Accept-Language: en;q=0.8,en-us;q=0.5" 'http://www.jordaaninfo.nl/'
--2012-11-20 23:16:01--  http://www.jordaaninfo.nl/
Resolving www.jordaaninfo.nl... 87.250.155.10
Connecting to www.jordaaninfo.nl|87.250.155.10|:80... connected.
HTTP request sent, awaiting response... 200 OK
....

Firefoxの500エラーは、Accept-Language設定の最初のエントリとしての言語「nl」が原因で発生しました。

nl,en;q=0.8,en-us;q=0.5,fy;q=0.3 --> 500 ERROR
en,nl;q=0.8,en-us;q=0.5,fy;q=0.3 --> 200 OK
于 2012-11-20T22:31:41.447 に答える