Question

J'ai une application Django qui propose une API RESTful utilisant une tarte savoureuse.

J'utilise le développement de Django runserver tester.

Lorsque j'y accède via un navigateur, cela fonctionne bien, et utiliser Curl fonctionne également bien :

curl "http://localhost:8000/api/v1/host/?name__regex=&format=json"

Sur la console avec runserver, je vois :

[02/Oct/2012 17:24:20] "GET /api/v1/host/?name__regex=&format=json HTTP/1.1" 200 2845

Cependant, lorsque j'essaie d'utiliser le module de requêtes Python (http://docs.python-requests.org/en/latest/), j'obtiens un 404 en sortie :

>>> r = requests.get('http://localhost:8000/api/v1/host/?name__regex=&format=json')
>>> r
<Response [404]>

ou:

>>> r = requests.get('http://localhost:8000/api/v1/host/?name__regex=&amp;format=json')
>>> r
<Response [404]>

De plus, sur la console runserver de Django, je vois :

[02/Oct/2012 17:25:01] "GET http://localhost:8000/api/v1/host/?name__regex=&format=json HTTP/1.1" 404 161072

Pour une raison quelconque, lorsque j'utilise des requêtes, l'URL complète de la requête est affichée, y compris localhost - mais pas lorsque j'utilise le navigateur ou curl.

Je suppose que cela a quelque chose à voir avec l'encodage, l'agent utilisateur ou le type de requête qu'il envoie ?

Était-ce utile?

La solution

Je ne connais pas très bien les requêtes, mais je pense que votre idée d'encodage pourrait être judicieuse.C'est-à-dire que les requêtes pourraient traiter l'URL d'une manière ou d'une autre ?Peut-être qu'au lieu de tout transmettre directement dans l'URL, essayez de faire quoi Demandes de documents suggérer:

request_params = { 'name_regex' : '', 'format' : 'json' }
r = requests.get( 'http://localhost:8000/api/v1/host/', params = request_params )
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top