Установка тайм-аута на вызов urllib2.request() - программирование
Подтвердить что ты не робот

Установка тайм-аута на вызов urllib2.request()

Мне нужно установить таймаут на urllib2.request().

Я не использую urllib2.urlopen(), так как я использую параметр data request. Как я могу установить это?

4b9b3361

Ответ 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()

это тоже работает:)