2017-10-02 16 views
0

リクエストライブラリを使用してAPIに接続し、データを取得しています。私は接続するプロキシを持っていて、それと動作しますAuthenticatedProxyユーザ名とパスワードを公開せずに認証プロキシを使用したPythonリクエスト。

これは私のコードがどのように見えるかです。

import requests 
s = requests.Session() 
url = "https://testapi" 
urlkey = “testkey” 
proxies = {'https': 'http://<UserName>:<Password>@proxy_url:8080'} 
resp = s.get(url, params={'key':urlkey }, proxies = proxies) 
content = resp.content 
print content 

ここではユーザー名とパスワードが公開されていますので、避けたいと思います。どのように私はそれを達成することができますか? defaultCredentialsまたは 'pythonスクリプトを実行しているアカウント'の資格情報を使用するようにリクエストできますか?コンフィグ作品次.NETで

、:

<system.net> 
    <defaultProxy enabled="true" useDefaultCredentials="true"> 
     <proxy proxyaddress="https://testapi:8080" bypassonlocal="True"/> 
    </defaultProxy> 
    </system.net> 

おかげで、すべて。 似たような質問hererequestdocsから

答えて

1

あなたはまた HTTP_PROXYとHTTPS_PROXY環境変数を設定することで、プロキシを設定することができます。

だからではなく、環境変数を設定することにより、スクリプト内の資格情報を明らかにすることを避けることができます:

$ export HTTPS_PROXY="http://<UserName>:<Password>@proxy_url:8080" 

そして、スクリプトであなただけ呼び出すことで、プロキシを使用します。

resp = s.get(url, params={'key':urlkey }) 
+0

ありがとう@TheoretiCAL。しかし、私の運用環境でHTTPS_PROXYを設定することが許可されているかどうかはわかりません。 – ProgSky

+0

@ProgSky代わりにスクリプトを実行しているときに、資格情報の入力を求めてきましたか? https://docs.python.org/2/library/getpass.htmlをご覧ください。あるいは、Pythonの.netラッパーを使うことができます。これにより、system.net呼び出しにアクセスできます。 https://github.com/pythonnet/pythonnet – TheoretiCAL

関連する問題