23

我需要设置超时urllib2.request()

我不使用urllib2.urlopen(),因为我使用的datarequest. 我该如何设置?

4

3 回答 3

50

虽然urlopen确实接受dataparam for POST,但您可以调用urlopen这样的Request对象,

import urllib2
request = urllib2.Request('http://www.example.com', data)
response = urllib2.urlopen(request, timeout=4)
content = response.read()
于 2013-05-20T09:31:50.403 回答
4

不过,您可以避免使用 urlopen 并像这样继续:

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

这也有效:)

于 2015-07-13T09:04:25.407 回答
3

为什么不使用很棒的请求?你会为自己节省很多时间。

如果您担心部署,只需将其复制到您的项目中。

例如。请求数:

>>> requests.post('http://github.com', data={your data here}, timeout=10)
于 2013-05-20T09:29:05.040 回答