Установка тайм-аута на вызов urllib2.request()
Мне нужно установить таймаут на urllib2.request()
.
Я не использую urllib2.urlopen()
, так как я использую параметр data
request
. Как я могу установить это?
Ответы
Ответ 1
Хотя urlopen
принимает параметр data
для POST
, вы можете вызвать urlopen
для объекта Request
, подобного этому,
import urllib2
request = urllib2.Request('http://www.example.com', data)
response = urllib2.urlopen(request, timeout=4)
content = response.read()
Ответ 2
Почему бы не использовать awesome requests? Вы сэкономите много времени.
Если вы беспокоитесь о развертывании, просто скопируйте его в свой проект.
Eg. запросов:
>>> requests.post('http://github.com', data={your data here}, timeout=10)
Ответ 3
вы можете избежать использования urlopen и действовать следующим образом:
request = urllib2.Request('http://example.com')
response = opener.open(request,timeout=4)
response_result = response.read()
это тоже работает:)