Comment puis-je créer une requête GET avec les paramètres?
Par défaut, il me semble (pour moi) que tous les urlopen()
avec des paramètres semble envoyer une requête POST. Comment puis-je régler l'appel d'envoyer un GET à la place?
import urllib
import urllib2
params = urllib.urlencode(dict({'hello': 'there'}))
urllib2.urlopen('http://httpbin.org/get', params)
urllib2.HTTPError: Erreur HTTP 405: MÉTHODE NON AUTORISÉE
- Le code
dict({...})
est redondant, le{...}
syntaxe déjà crée un dictionnaire, de sorte que vous pouvez simplementurlencode({'hello': 'there'})
.
Vous devez vous connecter pour publier un commentaire.
que vous pourriez utiliser, de la même manière que la requête post:
Le deuxième argument ne doit être fourni lors de la prise de requêtes POST, comme lors de l'envoi d'un
application/x-www-form-urlencoded
type de contenu, par exemple.urlencode
ne pas ajouter de?
. Aussi,dict({...})
est redondant, le{...}
syntaxe déjà crée undict
.?
à la fin de l'URL, mais fonctionne bien maintenant. Merci.La requête HTTP sera un POST au lieu de GET lorsque le paramètre de données est fourni.
Essayez
urllib2.urlopen('http://httpbin.org/get?hello=there')
à la place.Si vous faites une demande GET ensuite, vous voulez passer de la chaîne de requête.
Vous le faire en plaçant un point d'interrogation '?' à la fin de votre url avant la params.