tasty-pieを使用してRESTfulAPIを提供するDjangoアプリがあります。
テストにはDjangoの開発runserver
を使用しています。
ブラウザ経由でアクセスすると正常に動作し、Curlの使用も正常に動作します。
curl "http://localhost:8000/api/v1/host/?name__regex=&format=json"
runserverを備えたコンソールでは、次のように表示されます。
[02/Oct/2012 17:24:20] "GET /api/v1/host/?name__regex=&format=json HTTP/1.1" 200 2845
ただし、Pythonリクエストモジュール(http://docs.python-requests.org/en/latest/)を使用しようとすると、出力として404が返されます。
>>> r = requests.get('http://localhost:8000/api/v1/host/?name__regex=&format=json')
>>> r
<Response [404]>
また:
>>> r = requests.get('http://localhost:8000/api/v1/host/?name__regex=&format=json')
>>> r
<Response [404]>
また、Django runserverコンソールでは、次のように表示されます。
[02/Oct/2012 17:25:01] "GET http://localhost:8000/api/v1/host/?name__regex=&format=json HTTP/1.1" 404 161072
何らかの理由で、リクエストを使用すると、localhostを含むリクエストURL全体が出力されますが、ブラウザやcurlを使用すると出力されません。
これは、送信するエンコーディング、ユーザーエージェント、またはリクエストタイプと関係があると思いますか?