Как указать в запросе эквивалент аргумента curl `--proxy-headers`? - PullRequest
0 голосов
/ 17 октября 2019

Я пытаюсь передать некоторые заголовки только в мои прокси, когда я использую запросы, и я не вижу способа сделать это.

urllib3.ProxyManager имеет параметр proxy_headers, поэтому я предполагаю, что есть способ установить его для библиотеки запросов - я что-то упустил?

1 Ответ

1 голос
/ 18 октября 2019

Вы можете сделать это с настроенным 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...