urllib3出现ValueError("Can't specify both 'ssl_version' and either ""'ssl_minimum_version' or 'ssl_maximum_version'")的解决方案
发布时间:2023-01-29 04:30:02
报错的原因urllib库在使用中会出现的ValueError错误,是因为在同时设置了'ssl_version'和其他或中的任意一个参数。另外一个例子这个例子中使用了和来设置ssl版本为TLS v1.2注意:在这两个例子中,不能同时使用'ssl_version'和其他或参数。
报错的原因
urllib3库在使用中会出现"Can't specify both 'ssl_version' and either ""'ssl_minimum_version' or 'ssl_maximum_version'"的ValueError错误,是因为在同时设置了'ssl_version'和其他'ssl_minimum_version'或'ssl_maximum_version'中的任意一个参数。在这种情况下,应该只使用一个参数来设置ssl版本。
如何解决
解决方法是,只使用一种方式来设置ssl版本,而不是同时使用'ssl_version'和其他'ssl_minimum_version'或'ssl_maximum_version'参数。
例如,如果你想设置ssl版本为TLS v1.2,可以使用以下方式:
import urllib3
http = urllib3.PoolManager(
cert_reqs='CERT_REQUIRED',
ssl_version='TLSv1_2')
或者使用
import urllib3
http = urllib3.PoolManager(
cert_reqs='CERT_REQUIRED',
ssl_minimum_version='TLSv1_2',
ssl_maximum_version='TLSv1_2')
两种方式均可,但不能同时使用'ssl_version'和其他'ssl_minimum_version'或'ssl_maximum_version'参数。
使用例子
是的,下面是一个例子:
import urllib3
http = urllib3.PoolManager(
cert_reqs='CERT_REQUIRED',
ssl_version='TLSv1_2')
response = http.request('GET', 'https://example.com')
print(response.status)
这个例子中使用了 'ssl_version'来设置ssl版本为TLS v1.2。
另外一个例子
import urllib3
http = urllib3.PoolManager(
cert_reqs='CERT_REQUIRED',
ssl_minimum_version='TLSv1_2',
ssl_maximum_version='TLSv1_2')
response = http.request('GET', 'https://example.com')
print(response.status)
这个例子中使用了'ssl_minimum_version'和'ssl_maximum_version'来设置ssl版本为TLS v1.2
注意:在这两个例子中,不能同时使用'ssl_version'和其他'ssl_minimum_version'或'ssl_maximum_version'参数。