问题
I need to send post request using java test to this rest function :
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public @ResponseBody String handleFileUpload(@PathVariable Long ownerId, @RequestBody MultipartFile file,
HttpServletResponse response) throws IOException {
//Some function
}
this is my trial:
File file = new File("filePath");
FileDataBodyPart fileDataBodyPart = new FileDataBodyPart("file", file, MediaType.MULTIPART_FORM_DATA_TYPE);
WebResource webResource = createResourceClient("restPath", user);
ClientResponse response = webResource.type(MediaType.MULTIPART_FORM_DATA_TYPE).post(ClientResponse.class, fileDataBodyPart);
and the error says:
"The current request is not a multipart request"
回答1:
The below piece of code will send both the file and the ContentDispostion to the REST API.
FormDataBodyPart formPart = new FormDataBodyPart(FormDataContentDisposition.name("file").fileName("YourFileName").build(),
inputStream,MediaType.APPLICATION_OCTET_STREAM_TYPE);
MultiPart multipart = new FormDataMultiPart().bodyPart(formPart);
resource = resource.path("Your Rest api path");
ClientResponse response = resource.type(MediaType.MULTIPART_FORM_DATA).post(ClientResponse.class, multipart);
来源:https://stackoverflow.com/questions/35341016/webresource-multipart-post-request