web-dev-qa-db-ja.com

Python requests:POST request dropping Authorization header

POSTリクエストをPythonリクエストライブラリを使用してリクエストします。Authorizationヘッダーを渡していますが、デバッグすると、ヘッダーが削除されていることがわかります。

これが私のコードです:

access_token = get_access_token()
bearer_token = base64.b64encode(bytes("'Bearer {}'".format(access_token)), 'utf-8')
headers = {'Content-Type': 'application/json', 'Authorization': bearer_token}
data = '{"FirstName" : "Jane", "LastName" : "Smith"}'
response = requests.post('https://myserver.com/endpoint', headers=headers, data=data)

上記のように、リクエストの引数に手動でAuthorizationヘッダーを設定しましたが、実際のリクエストのヘッダーがありません:{'Connection': 'keep-alive', 'Content-Type': 'application/json', 'Accept-Encoding': 'gzip, deflate', 'Accept': '*/*', 'User-Agent': 'python-requests/2.4.3 CPython/2.7.9 Linux/4.1.19-v7+'}

追加情報として、POSTリクエストをGETリクエストに変更すると、Authorizationヘッダーは正常に通過します。

このライブラリがPOSTリクエストのヘッダーをドロップするのはなぜですか?これを機能させるにはどうすればよいですか?

リクエストlibのv2.4.3とPython 2.7.9

9
user4184113

POST 'request' libを使用したリクエストでAuthorizationヘッダーを送信するには、Pythonでこれを使用するだけです。

requests.post('https://api.github.com/user', auth=('user', 'pass'))

これは基本的な認証です。

0
mayank gupta