我的代码看起来像这样:
import requests
s = requests.Session()
r = s.get(a, verify=False)
r = s.get(b, verify=False)
r = s.get(c, verify=False)
r = s.get(d, verify=False)
r = s.get(e, verify=False)
r = s.get(f, verify=False)
r = s.get(g, headers={"a":"b"}, verify=False)
r = s.post(h, data={"a","b"},verify=False)
如何避免一直明确写verify=False
?
答案 0 :(得分:7)
对于python请求,您可以通过执行
使SSL验证标志持续该会话的生命周期s.verify = False
更常见的是,当函数接受named=value
类型参数时,首先要做的是检查方法签名以查看默认值是否是您想要的值。如果不是下一件事就是看看该值是否如上所述(python requests允许这样做)。
第三个选项是创建一个简单的包装器,它为所有参数传递合适的值
def my_get(s, url):
s.get(url, verify=False)
称为
my_get(s, url)
或者你可以从图书馆获得真正雄心勃勃的monkey patch课程。但猴子补丁有时会导致意想不到的副作用,所以除非作为最后的手段,否则最好避免使用。
参考文献:
the documentation for the verify
attribute of the Session
class。
Using Optional and named arguments.
答案 1 :(得分:4)
可以使用partial
get_unverified = partial(s.get, verify=False)
post_unverified = partial(s.post, verify=False)
r = get_unverified(a)
r = get_unverified(b)
r = get_unverified(c)
r = get_unverified(d)
r = get_unverified(e)
r = get_unverified(f)
r = get_unverified(g, headers={"a":"b"})
r = post_unverified(h, data={"a","b"})