2017-10-22 8 views
0

にcurlコマンドの変換、私は上記のAPIがbase64形式での承認を必要とし、詳細はヘッダとして渡されなければなら完全に正常に動作してくれHTTP 200のPython 2.7

curl -i -H "Authorization: Basic jadkfhjkafDSKJ12DD=" http://<ip>/LoadTest/rest/authentication-point/authenticate 

を与えるcurlコマンドを持っています。これはGETリクエストです。

私はPython 2.7で同じものを実行しようとすると、私はResponse [403]を得ます。以下のコード。

import requests 
headers = {'Authorization': 'Basic jadkfhjkafDSKJ12DD='} 
authurl = "http://<ip>/LoadTest/rest/authentication-point/authenticate" 
r = requests.get(authurl, headers=headers) 
print r.status_code 

私はここで何が欠けていますか? curlコマンドを渡したのとまったく同じように認証値を渡すべきですか?私は複数の方法を試しましたが、まだHTTP 403を常に取得してしまいます。親切にガイドします。

+0

はないで定義された

  • CAバンドルこれを解決してネットワークトラフィックを捕捉し、コールの相違点を確認する最も簡単な方法は? –

  • +0

    どうすればいいですか?提案してください – Dev

    +0

    Googleを使ってみましたか? –

    答えて

    0

    入力いただきありがとうございます。これが最終的な解決策です。私はペイロードを停止しているプロキシがあることを発見しました。リクエストにセッションが追加されました。 trust_env=False設定

    import requests 
    session = requests.Session() 
    session.trust_env = False 
    headers = {'Authorization': 'Basic jadkfhjkafDSKJ12DD='} 
    authurl = "http://<ip>/LoadTest/rest/authentication-point/authenticate" 
    r = session.get(authurl, headers=headers) 
    print r.status_code 
    

    は、以下を無視:.netrcのから

    • 認証情報(コード) REQUESTS_CA_BUNDLE又はCURL_CA_BUNDLE(コード)