辞書としてのparams対テキストなどのparams間のURLの変更私がどのように見えるの署名になりHMACとhashlibを使って署名を生成Pythonの要求 - 私が使用してAPIを呼び出すために、Pythonの要求を使用してい
GET:
4epwTDKhWcIJL6bMM5f2hmBrOoXXIGD9UwX8ErfYzqU%3D
私はRequestを使用して、文字列としてparamsを指定すると、署名がそのまま使用され、変更されないため、API呼び出しが成功します。
リクエストを使用して辞書として指定すると、上記の署名が何らかの形でURLエンコードされ、%がエンコードされて%25になり、署名が次のように表示されます(%25に注意してください)。
https://example.com/API&
¶meterA=valueA
¶meterB=valueB
&apikey=0e1026af-40ce-e354-f1f2-72d280ca122
&salt=12345
&signature=4epwTDKhWcIJL6bMM5f2hmBrOoXXIGD9UwX8ErfYzqU%3D
:のURLで
url = 'https://example.com/API'
payload = '¶meterA=valueA¶meterB=valueB¶meterC=valueC& apikey='+apikey+'&salt='+salt+'&signature='+sig
#payload = {'parameterA': 'valueA', 'parameterB': 'valueB', 'apikey': apikey, 'salt': salt, 'signature': sig}
r = requests.get(url, params=payload)
print r.url
結果:より多くのコンテキストについては
4epwTDKhWcIJL6bMM5f2hmBrOoXXIGD9UwX8ErfYzqU%253D
は、ここでは、文字列のparamsです
さて、辞書のparams:のURLで
url = 'https://example.com/API'
payload = {'parameterA': 'valueA', 'parameterB': 'valueB', 'apikey': apikey, 'salt': salt, 'signature': sig}
r = requests.get(url, params=payload)
print r.url
結果:
https://example.com/API
&signature=4epwTDKhWcIJL6bMM5f2hmBrOoXXIGD9UwX8ErfYzqU%253D
&salt=12345
&apikey=0e1026af-40ce-e354-f1f2-72d280ca122
¶meterA=valueA
¶meterB=valueB
注再び署名における%は%に25の
感謝を変更したこと!
ありがとうございます!私はそれが何か小さいことを知っていた。むしろ時期尚早だった署名を生成するときに、URLエンコードを行います。私は将来デモコードをチェックする必要があります。私は洞察力に感謝します、ありがとう! –