web-dev-qa-db-fra.com

définition du délai d'expiration d'un appel urllib2.request ()

Je dois définir le délai d'expiration sur urllib2.request().

Je n'utilise pas urllib2.urlopen() car j'utilise le paramètre data de request. Comment puis-je régler cela?

18
eran

Bien que urlopen n'accepte pas le paramètre data pour POST, vous pouvez appeler urlopen sur un objet Request comme celui-ci,

import urllib2
request = urllib2.Request('http://www.example.com', data)
response = urllib2.urlopen(request, timeout=4)
content = response.read()
43
Jared

vous pouvez toujours éviter d'utiliser urlopen et procéder comme ceci:

request = urllib2.Request('http://example.com')
response = opener.open(request,timeout=4)
response_result = response.read()

cela fonctionne aussi :)

3
Giorgoc

Pourquoi ne pas utiliser le génial requêtes ? Vous vous épargnerez beaucoup de temps.

Si vous vous inquiétez du déploiement, copiez-le simplement dans votre projet.

Par exemple. des demandes:

>>> requests.post('http://github.com', data={your data here}, timeout=10)
2
Alex