python - urllib.request.Request 超时参数错误
问题描述
当我向函数添加超时参数时,我的代码总是进入异常并打印出“我失败了”。当我删除 timeout 参数时,代码会正常工作,并进入 try 子句。有关超时参数如何在 urllib.request 函数中工作的任何信息?
import urllib.request
url = 'stackoverflow.com'
try:
req = urllib.request.Request("http://" + url, timeout = 1000000000)
req = urllib.request.urlopen(req)
print("I tried.")
except:
print("I failed.")
我尝试使用请求而不是 urllib,并且代码与包含的超时参数一起使用。在下面的代码中,它总是进入 try 子句,有或没有传递超时参数。
import requests
url = 'stackoverflow.com'
try:
req = requests.get("http://" + url, timeout=1000000)
print("I tried.")
except:
print("I failed.")
但是,我不想使用请求,因为以后我的代码中有一些冲突。关于如何在 urllib 中包含超时的任何想法?
解决方案
在urllib.request.Request中没有初始参数,timeout
但它在urllib.request.urlopen中,所以你需要:
import urllib.request
url = 'stackoverflow.com'
try:
req = urllib.request.Request("http://" + url)
req = urllib.request.urlopen(req, timeout=1000000000)
# ^^^^^^^
print("I tried.")
except:
print("I failed.")
推荐阅读
- javascript - 强制 Ipad 下载 pdf 并在新标签页中打开
- api - 我无法写入从 API 中提取的数据(Flutter)
- android - 为什么admob广告不显示?
- perl - 迭代一系列目录并以特殊方式对每个目录执行 mkdir
- python - 试图从我的 Yolo 预测边界框中裁剪 pdf
- list - 列表:将推文从一个列表过滤到另一个列表 - Twitter API
- python - 我可以将关键字作为值存储到变量中吗?
- python - 修补 Django FileSystemStorage 位置不生效 [pytest]
- ruby-on-rails - Rais 应用程序用户特定索引向所有用户显示
- reporting-services - SSRS 条件可见性问题