Jersey RESTful Web サービスでの追加データを含むファイルのアップロード
単一の REST 呼び出しで他のオブジェクト データとともにファイルをアップロードするには、以下を変更します次のように、uploadFileWithData メソッド:
@POST @Path("/upload2") @Consumes({MediaType.MULTIPART_FORM_DATA, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) public Response uploadFileWithData( @FormDataParam("file") InputStream fileInputStream, @FormDataParam("file") FormDataContentDisposition contentDispositionHeader, @FormDataParam("emp") String employeeJson) { // Deserialize the employee data from JSON JacksonJsonProvider provider = new JacksonJsonProvider(); Employee emp = provider.readFrom(Employee.class, employeeJson); // ...business logic... }
Keyポイント:
Postman のトラブルシューティング:
Postman は、個々のボディ部分の Content-Type を自動的に設定しない場合があります。これを修正するには:
代替解決策:
または、REST メソッドで Content-Type を明示的に設定できます。
@POST @Path("/upload2") @Consumes(MediaType.MULTIPART_FORM_DATA) public Response uploadFileAndJSON( @FormDataParam("emp") FormDataBodyPart jsonPart, @FormDataParam("file") FormDataBodyPart bodyPart) { jsonPart.setMediaType(MediaType.APPLICATION_JSON_TYPE); Employee emp = jsonPart.getValueAs(Employee.class); // ...business logic... }
注:
場合HttpUrlConnection とは異なるコネクタを使用している場合、関連するセクションで説明されている問題が発生する可能性があります。コメント。
以上がJersey RESTful Webサービスに追加のJSONデータを含むファイルをアップロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。