web-dev-qa-db-ja.com

Python httpsリクエストのプロキシを使用してAPIをリクエストするget 407プロキシ認証が必要

会社のプロキシで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でこの特定の問題を抱えている人は見つかりませんでした。

お時間をいただきありがとうございます

7
Fabrice E.

ルカサの驚くべき助けのおかげで、私は私の問題を解決しました。

ここで修正に関する議論を参照してください: https://github.com/kennethreitz/requests/issues/2911

または設定:

session.trust_env=False
5
Fabrice E.

私は、環境変数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

1
Somit

私が解決した他の方法は-企業のIT管理者と話し、外部ドメインに接続する直接のプロキシポートを見つける(パスワードあり/なし)

pip install --proxy = http:// proxyhostproxy_portpixiedust

Eclipse設定(ネットワーク)でプロキシ(proxy_port直接接続)を使用している他の同僚から発見

1
Vinay