私はAPIをフォローしていますが、ユーザーIDとパスワードのBase64認証を使用する必要があります。
「ユーザーIDとパスワードの両方を連結してからBase64エンコードする必要があります」
次に例を示します
'userid:password'
次に、「「認証ヘッダー」にエンコードされた値を提供する」と言います。
'たとえば:Authorization:BASIC {Base64-encoded value}'
これをpython apiリクエストに書き込むにはどうすればよいですか?
z = requests.post(url, data=zdata )
ありがとう
以下を実行して、データをエンコードし、リクエストを行うことができます。
import requests, base64
usrPass = "userid:password"
b64Val = base64.b64encode(usrPass)
r=requests.post(api_URL,
headers={"Authorization": "Basic %s" % b64Val},
data=payload)
Authorizationフィールドに「BASIC」ワードを追加する必要があるかどうかはわかりません。 APIリンクを提供すると、より明確になります。
要求ライブラリには Basic Authサポート があり、自動的にエンコードされます。 python replで次を実行することでテストできます
from requests.auth import HTTPBasicAuth
r = requests.post(api_URL, auth=HTTPBasicAuth('user', 'pass'), data=payload)
次を入力して、このエンコードを確認できます。
r.request.headers['Authorization']
出力:
u'Basic c2RhZG1pbmlzdHJhdG9yOiFTRG0wMDY4'
Python3で私のために働いている解決策を見つけました:
userpass = username+":"+password
endcoded_u = base64.b64encode(userpass.encode("ascii")).decode("ascii")
headers = {"Authorization" : "Basic %s" % encoded_u}