|
发表于 2023-8-18 18:05:14
|
显示全部楼层
根据你提供的代码,你希望通过urllib.request模块发送一个HTTPS请求。在Python 3中,默认情况下,urllib.request会验证SSL证书。但是,你可以通过设置上下文(context)来创建一个不验证SSL证书的HTTPS请求。
在你的代码中,你尝试通过设置ssl._create_default_https_context来创建一个不验证SSL证书的上下文。然而,由于你导入的ssl模块并不具备_create_default_https_context属性,所以会报错。
为了创建一个不验证SSL证书的上下文,你可以使用ssl.create_default_context()方法,并设置check_hostname和verify_mode参数。以下是修正后的代码:
- import urllib.request
- import ssl
- url = "https://dict.youdao.com/webtranslate"
- context = ssl.create_default_context()
- context.check_hostname = False
- context.verify_mode = ssl.CERT_NONE
- req = urllib.request.Request(url)
- d = urllib.request.urlopen(req, context=context)
复制代码
修正后的代码中,我们使用ssl.create_default_context()创建了一个默认的SSL上下文对象。然后,我们设置check_hostname为False以禁用主机名检查,将verify_mode设置为ssl.CERT_NONE以禁用证书验证。
这样,你就可以成功地发送HTTPS请求并获取响应了。
希望能解决你的问题!如果还有其他疑问,请随时提问。
如果问题已经解决,请设置最佳答案 |
|