Pythonリクエストを使用したマルチパートデータPOST:マルチパート境界が見つかりませんでした 質問する

Pythonリクエストを使用したマルチパートデータPOST:マルチパート境界が見つかりませんでした 質問する

フォームデータとファイルを同じPOSTで送信する必要があります。たとえば、{duration: 2000、file: test.wav}などです。ここでは、Pythonリクエストを使用したmultipart/form-dataの投稿に関する多くのスレッドを見ました。特に、これです

私のサンプルリクエストは次のとおりです。

    files = {'file': ('wavfile', open(filename, 'rb'))}
    data = {'duration': duration}
    headers = {'content-type': 'multipart/form-data'}
    r = self.session.post(url, files=files, data=data, headers=headers)

しかし、上記のコードを実行すると、次のエラーが発生します。

5:59:55.338 Dbg 09900 [DEBUG] ハンドラー [null] からの例外を解決しています: org.springframework.web.multipart.MultipartException: マルチパート サーブレット要求を解析できませんでした。ネストされた例外は org.apache.commons.fileupload.FileUploadException です: マルチパート境界が見つからなかったため、要求は拒否されました。

私の質問は次のとおりです。1) 送信されているリクエストの内容を確認するにはどうすればよいですか? Wireshark を使用できませんでした。ネットワーク経由ではないためです。2) エンコードされたデータに境界がないのはなぜですか? 何か見落としがありましたら、ご指摘ください。

ベストアンサー1

決して自分でそのヘッダーを設定しないでください。境界を使用してヘッダーを適切に設定します。そのヘッダーを設定した場合、境界は設定されず、サーバーはどのような境界を期待するかわかりません (ヘッダーに追加されるため)。カスタム Content-Type ヘッダーを削除すれば、問題は解決します。

おすすめ記事