2013-07-01 8 views
19

同じPOSTで送信するフォームデータとファイルがあります。例:{duration:2000、file:test.wav}。私は、ここでは、Pythonリクエストを使ってmultipart/form-data投稿に多くのスレッドを見ました。彼らは役に立ちました、特にthis oneマルチパートデータPOSTによるPythonリクエスト:マルチパート境界が見つかりません

私のサンプル要求は以下の通りです:

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)エンコードされたデータに境界がないのはなぜですか?私は何かを見逃しました、指摘してください。

答えて

35

あなたは決してそのヘッダーを自分で設定するべきではありません。ヘッダーは境界線で正しく設定されます。そのヘッダを設定した場合、サーバは期待していた境界(ヘッダに追加されているため)を知らないでしょう。カスタムContent-Typeヘッダーを削除しても問題ありません。

6

明示的な「multipart/form-data」でContent-Typeヘッダーを取り出すことができました!

関連する問題