従来のインターフェイスのほとんどは json 形式でリクエストされるようになりました。
ただし、一部のインターフェイスではファイル ストリームを送信する必要が避けられず、この場合はフォームデータ形式でアップロードする必要があります
for.e:
次のインターフェイスが存在します。ポスター画像はインターフェイスを通じて作成されますが、サムネイルをアップロードする必要があります。
現時点では、インターフェイスの Content-Type を application/json にすることはできませんが、 multipart/form-data にすることはできません。
パラメータ形式もフォームの形式で渡されます。
これは非常に簡単です。 postman でファイル フローを設定します。ファイル形式を設定すると、ローカルにアップロードするファイルを選択できます。下の図を参照してください。
実際のリクエスト インターフェイスは成功する可能性があります。
Python を使用して上記のリクエストを完了するには、明確なリクエスト メソッドとデータ型、およびファイルの読み込みファイルをアップロードする必要があります
import requests import json from requests_toolbelt.multipart.encoder import MultipartEncoder url='http://XXX.xxx.xxx.xx:9900/api-marketing-center/poster/save' data={'activityName':'我是个海报2', 'backgroundPicUrl':'https://xxxxx/default/f865a1aa66adfe50d005bd840e2c3356.jpg', 'copywriting':'我是个海报 看看我2', 'endTime':'2021-08-14 16:00:00', 'startTime':'2021-08-11 16:00:00', 'giftPicUrl':'https://xxxxx/file/c363c3173ac7c02393bf60018031073d.PNG', 'qrCodeUrl':'https://xxxxxx/file/c363c3173ac7c02393bf60018031073d.PNG', 'posterUrlThumbnail':'文件' } files = {"posterUrlThumbnail": open('C:/Users/Lenovo/Desktop/格式测试/12.PNG', "rb")} headers={'AUTH_MERCHANTS_ID': '76', 'Authorization': 'Bearer ad8cbdf3-c827-470a-aba5-076f0f3a9628'} r=requests.post(url=url,params=data, headers=headers,files=files) print(r.json()) #{'code': 0, 'msg': '操作成功', 'data': None}
data: リクエストのパラメータを入力しますこの中で、アップロード ファイルのパラメーター名に注意する必要があります。 stream
files = {"posterUrlThumbnail": open( 'C:/Users/Lenovo/Desktop/Format Test/12. PNG', "rb")}
posterUrlThumbnail は割り当てに使用されるパラメータ名です。ファイルを開いて割り当てを読み取ります
上記の最も単純なハードコーディングされたヘッダーを使用します。
リクエスト ライブラリ メソッドを呼び出して
をリクエストすると、結果が得られます
もちろん、より複雑な方法でログイン メソッドをカプセル化して、login を呼び出すこともできます。トークンと必要なヘッダーパラメータを取得します
以上がform-data を使用して Python でファイルリクエストをアップロードする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。