猿问

如何使用 org.jboss.resteasy.client.ClientRequest

我需要维护一个旧版软件。我们如何上传文件?org.jboss.resteasy.client.ClientRequestorg.springframework.web.multipart.MultipartFile


简而言之,我想实现:使用.可以是任何文件作为字符串路径示例:.curl -X POST http://mydomain/upload?sender=mr_abc -F file=@${FILE}ClientRequest${FILE}/Users/mr_abc/mytarfile.tar


这是我拥有的:


request = new ClientRequest("http://mydomain/upload");

request.header("Content-Type","multipart/form-data");

request.queryParameter("sender", "mr_abc");

request.queryParameter("file", new File("/Users/mr_abc/mytarfile.tar"));

ClientResponse<String> response = request.post(String.class);

这导致错误Required request part 'file' is not present


婷婷同学_
浏览 184回答 2
2回答

12345678_0001

我们需要添加:<dependency>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <groupId>org.jboss.resteasy</groupId>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <artifactId>resteasy-multipart-provider</artifactId>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <version>3.0.19.Final</version>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <scope>test</scope></dependency>我之前尝试过版本2.3.5.Final,但失败了,所以3.0.19似乎是一个更好的版本。而在java代码中将需要使用类MultiPartFormDataOutputFile file = new File("/Users/mr_abc/mytarfile.tar");MultipartFormDataOutput upload = new MultipartFormDataOutput();&nbsp; &nbsp; &nbsp; &nbsp; upload.addFormData("file", targetStream, MediaType.MULTIPART_FORM_DATA_TYPE, "mytarfile.tar");request = new ClientRequest("http://mydomain/upload");request.queryParameter("sender", "mr_abc");request.body(MediaType.MULTIPART_FORM_DATA_TYPE, upload);ClientResponse<String> response = request.post(String.class);

拉丁的传说

Part&nbsp;filePart&nbsp;=&nbsp;request.getPart("file");&nbsp;//&nbsp;Retrieves&nbsp;<input&nbsp;type="file"&nbsp;name="file">String&nbsp;fileName&nbsp;=&nbsp;Paths.get(filePart.getSubmittedFileName()).getFileName().toString();&nbsp;//&nbsp;MSIE&nbsp;fix.InputStream&nbsp;uploadedInputStream&nbsp;=&nbsp;filePart.getInputStream(); Try&nbsp;above&nbsp;code&nbsp;to&nbsp;parse&nbsp;request&nbsp;and&nbsp;extract&nbsp;file&nbsp;contents.
随时随地看视频慕课网APP

相关分类

Java
我要回答