会社のプロキシでhttpsリクエストを作成するのに苦労しています。
import requests
from requests.auth import HTTPProxyAuth
proxy_string = 'http://user:password@url_proxt:port_proxy'
s = requests.Session()
s.proxies = {"http": proxy_string , "https": proxy_string}
s.auth = HTTPProxyAuth(user,password)
r = s.get('http://www.google.com') # OK
print(r.text)
r = s.get('https://www.google.com',proxies={"http": proxy_string , "https": proxy_string}) #OK
print(r.text)
r = s.get('https://www.google.com') # KO
print(r.text)
KOの場合、次の例外があります。
HTTPSConnectionPool(Host='www.google.com', port=443): Max retries exceeded with url: / (Caused by ProxyError('Cannot connect to proxy.', OSError('Tunnel connection failed: 407 Proxy Authentication Required',)))
私はオンラインで見ましたが、HTTPSでこの特定の問題を抱えている人は見つかりませんでした。
お時間をいただきありがとうございます
ルカサの驚くべき助けのおかげで、私は私の問題を解決しました。
ここで修正に関する議論を参照してください: https://github.com/kennethreitz/requests/issues/2911
または設定:
session.trust_env=False
私は、環境変数http_proxy、https_proxy、socks_proxy、ftp_proxyを更新することにより、私のシステムで上記の問題を個人的に解決しました。
まず、端末でコマンドを入力します:printenv
これにより、システムの環境変数が表示されます。
私の場合、最初は:http_proxy = http:// proxyserver:port /
私はそれを次のように変更しました:http_proxy = http:// username:password @ proxy:port /
コマンドexport http_proxy = "http:// username:password @ proxy:port /"を使用する
同様にhttps_proxy、socks_proxy、ftp_proxy
私が解決した他の方法は-企業のIT管理者と話し、外部ドメインに接続する直接のプロキシポートを見つける(パスワードあり/なし)
pip install --proxy = http:// proxyhost :proxy_portpixiedust
Eclipse設定(ネットワーク)でプロキシ(proxy_port直接接続)を使用している他の同僚から発見