Я пытаюсь получить URL-адрес, выполнив запрос POST с использованием модуля urllib2
Python. Я создаю запрос следующим образом.Python urllib2 установка таймаута
handler = urllib2.HTTPHandler()
opener = urllib2.build_opener(handler)
url = 'xyz...'
request = urllib2.Request(url,data='{}')
request.add_header('Content-Type','application/json')
request.get_method = lambda: 'POST'
try:
connection = opener.open(request)
except urllib2.HTTPError as e:
connection = e
except urllib2.URLError as e:
print 'TIMEOUT: ' + e.reason
Я хочу установить тайм-аут для открытого запроса где-нибудь. В документах https://docs.python.org/3.1/library/urllib.request.html вызов build_opener()
должен возвращать экземпляр OpenDirector
, который должен иметь параметр таймаута. Но я не могу заставить его работать. Кроме того, причина, по которой я создаю запрос, заключается в том, что мне нужно указать пустое тело data='{}'
в запросе, и я, похоже, не могу это сделать с urlopen
. Любая помощь оценивается.
Спасибо. Это работает. Не уверен, почему он проголосовал, ссылка не отвечает на мой вопрос. – broccoli
@ broccoli: * «не отвечает на мой вопрос» * неверно. Я вижу 'opener.open (request, timeout = 4)' буквально в ссылке. Недостатком является отсутствие исследований. – jfs