229 votes

Est-il possible de faire HTTP PUT en python

J’ai besoin de télécharger des données vers un serveur à l’aide de HTTP en python. De ma brève lecture de la documentation urllib2, il ne le fait HTTP . Est-il possible de faire un HTTP `` en python ?

327voto

John Carter Points 2451

J'ai utilisé une variété de python HTTP libs dans le passé, et je l'ai réglé sur"Demandes"comme mon préféré. Existant libs avait à peu utilisable interfaces, mais le code peut être quelques lignes trop longues pour des opérations simples. Une base de METTRE en demandes ressemble:

payload = {'username': 'bob', 'email': 'bob@bob.com'}
>>> r = requests.put("http://somedomain.org/endpoint", data=payload)

Vous pouvez ensuite vérifier le code d'état de réponse:

r.status_code

ou la réponse:

r.content

Demandes a beaucoup synactic de sucre et de raccourcis qui va rendre votre vie plus facile.

246voto

Florian Bösch Points 12408
import urllib2
opener = urllib2.build_opener(urllib2.HTTPHandler)
request = urllib2.Request('http://example.org', data='your_put_data')
request.add_header('Content-Type', 'your/contenttype')
request.get_method = lambda: 'PUT'
url = opener.open(request)

46voto

Spooles Points 541

Httplib semble être un choix plus propre.

8voto

John Montgomery Points 3770

Vous devriez jeter un oeil sur le module httplib. Il devrait vous permettre de faire toute sorte de requête HTTP que vous voulez.

8voto

Mike Points 1273

J’avais besoin résoudre ce problème aussi un peu en arrière afin que je puisse agir comme un client pour une API RESTful. Je me suis installé sur httplib2 parce que cela m’a permis d’envoyer PUT et DELETE outre GET et POST. Httplib2 ne fait pas partie de la bibliothèque standard, mais vous pouvez l’obtenir facilement de la fromagerie.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X