为所有请求设置请求默认配置

时间:2020-07-29 13:37:13

标签: python python-requests

我想为所有请求设置请求默认配置,所以不要这样做:

requests.get(url, headers={...}, timeout=..., proxies=...)

我只是做

requests.get(url)

我确实进行了搜索,但是没有找到解决方案,我可以想到将请求扩展到这样的类:

import requests
class CustomRequests:
    def __init__(self, **kwargs):
        for k, v in kwargs.items():
            setattr(self, k, v)
    
    def __call__(self, requests_object, *args, **kwargs):
        return requests_object(*args, **kwargs, **self.__dict__)

并且可以这样使用:

Req = CustomRequests(headers={'foo': 'bar'}, proxies={'http': 'baz'}, timeout=15)

print(Req(requests.get, 'https://github.com').status_code)

200

对我来说,这听起来像是种肮脏的破解方式,不是吗?有更好的解决方案吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

如果你不需要使用sessions,比如你只发出一个请求,你可以使用partials

"android-key"