【问题标题】:How does one specify the equivalent of `--proxy-headers` curl argument into requests?如何在请求中指定等效的 `--proxy-headers` curl 参数?
【发布时间】:2019-10-17 20:27:22
【问题描述】:

当我使用请求时,我希望仅将一些标头传递给我的代理,但我没有看到执行此操作的方法。

urllib3.ProxyManager 有一个 proxy_headers 参数,所以我假设有一种方法可以为请求库设置它 - 我错过了什么吗?

【问题讨论】:

    标签: python-3.x proxy python-requests


    【解决方案1】:

    您可以使用自定义的 HTTPAdapter 来实现(例如,如下所示):

    import requests
    
    proxyheaders = { 'http://proxy.that.needs.header:8080/': { 'ProxyHeader1': 'SomeValue', 'ProxyHeaderN': 'OtherValue' } }
    
    class ProxyHeaderAwareHTTPAdapter(requests.adapters.HTTPAdapter):
        def proxy_headers(self, proxy):
            if proxy in proxyheaders:
                return proxyheaders[proxy]
            else:
                return None
    
    s = requests.Session()
    s.mount('http://', ProxyHeaderAwareHTTPAdapter())
    s.mount('https://', ProxyHeaderAwareHTTPAdapter())
    s.get(....)
    ...
    

    如果你愿意的话,你也可以直接创建并返回一个配置好的 urllib3.ProxyManager 如果你覆盖了 proxy_manager_for 方法而不是 proxy_headers。
    https://requests.kennethreitz.org/en/master/api/#requests.adapters.HTTPAdapter

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-05-20
      • 2015-05-25
      • 1970-01-01
      • 1970-01-01
      • 2018-08-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多