2016-08-20 11 views
1

同じリクエストでmultipart/form-dataとapplication/jsonの両方のコンテンツタイプを受け入れるメソッドを作成しようとしています。私は同じものを作成するために春休みを使用しています。しかし、私がFiddlerからリクエストしたときには、その呼び出しはメソッドに到達しません。助けてください春休みのJSONでマルチパートが動作しない

サービスメソッド

@RequestMapping(value = "/", method = RequestMethod.POST, produces = "application/json",consumes = "multipart/form-data") 
public ResponseEntity<JSONObject> addField(@RequestParam int customerId,@RequestParam int teId, 
     @RequestPart("file") List<MultipartFile> multipartFiles, @RequestParam("toast") String toast, MultipartHttpServletRequest request){ 

フィドラー

ヘッダー

Content-Type: multipart/form-data; boundary=HereGoes; 

ボディ

Content-Type: application/json 

---------------------------acebdf13572468 
    Content-Disposition: form-data; name="fieldNameHere"; filename="file1.pdf" 
Content-Type: application/pdf 

    <@INCLUDE *C:\Users\User\Desktop\file1.pdf*@> 
---------------------------acebdf13572468-- 

答えて

2

ファイトラーの要求本体に正しいファイル名を追加してください。あなたのメソッドでは@RequestPart( "file")です。したがって、 "fieldNameHere"の代わりに "name"フィールドに "file"を使用します。これは、フィドラーによって生成されます。リクエストの本文は次のようになります。

---------------------------acebdf13572468 
Content-Disposition: form-data; name="file"; filename="file1.pdf" 
Content-Type: application/pdf 

<@INCLUDE *C:\Users\User\Desktop\file1.pdf*@> 
---------------------------acebdf13572468-- 
+0

@abghel返信ありがとうございます。はい、私はすでにその問題に気付き、運が無かったので試しました。 – t10011

+0

エラーは何ですか?あなたはカールを使用してあなたのサービスを呼び出すことができますか? – abaghel

+0

@abghel私はついにそれを働かせました。私が使用していたRequestParamの問題でした。 URIには言及されていないので、サービスは呼び出されませんでした。ログにエラーはありませんでしたが、404が返されました。助けてくれてありがとう。あなたが問題を指摘して以来、答えは受け入れられているとマークしています。 – t10011

関連する問題