2017-08-11 1 views
0

私はこのようないくつかのコードでhttpサーバへのRESTEasyクライアントとファイルを送信しようとしています:RESTEasyのクライアントマルチポストファイル

File source = new File("test.pdf"); 

Client client = ClientBuilder.newClient(); 

MultipartFormDataOutput upload = new MultipartFormDataOutput(); 

upload.addFormData("source", source, MediaType.APPLICATION_OCTET_STREAM_TYPE); 

Entity entity = Entity.entity(upload, MediaType.MULTIPART_FORM_DATA_TYPE) 
Response response = client.target(url).request().post(entity); 

何が起こるには、httpサーバ上で私が届かないということです(コンテンツ、名前などを含む)リクエストでは通常の "file"ですが、ファイル内容を値として持つ "source"という名前の通常のPOSTパラメータのようなものです。 いくつかの異なるWebサーバーで試したので、問題はRESTeasyが構築する要求に含まれている必要があります。

助けが必要ですか?

答えて

0

MultipartFormDataOutputは、HTMLフォームと同じ動作をします。これは、キーと値のペアをサーバーに送信します。

MIMEメッセージをアップロードする場合は、MultipartOutputを使用することを検討してください。

+0

MultipartOutputの使い方の例を書くことを検討しますか? – DarkCygnus

+0

@DarkCygnusそれはかなり簡単です。あなたはあなたのパーツを追加してRESTEasyにそのアウトプットプロバイダを使って世話をします。例は[RESTEasyのJUnitテスト](https://github.com/resteasy/Resteasy/blob/master/testsuite/integration-tests/src/test/java/org/jboss/resteasy/test/providers)で確認できます。 /multipart/MimeMultipartProviderTest.java)。私は最近、 'multipart/related'メッセージを送信しなければならず、それは魅力的に機能しました - 残念なことに、私はここに何らかのソースを投稿することができません –