我正试图从Java Spring控制器调用一个Web服务。以下是代码:
private void storeImages(MultipartHttpServletRequest multipartRequest) {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(
"http://localhost:8080/dream/storeimages.htm");
MultipartFile multipartFile1 = multipartRequest.getFile("file1");
MultipartEntity multipartEntity = new MultipartEntity(
HttpMultipartMode.BROWSER_COMPATIBLE);
multipartEntity.addPart("file1",
new ByteArrayBody(multipartFile1.getBytes(),
multipartFile1.getContentType(),
multipartFile1.getOriginalFilename()));
postRequest.setEntity(multipartEntity);
HttpResponse response = httpClient.execute(postRequest);
if (response.getStatusLine().getStatusCode() != 201) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
}
以上只是部分代码。我正在尝试确定如何在服务器端检索它。在服务器端,我有以下Spring控制器代码:
@RequestMapping(value = "/storeimages.htm", method = RequestMethod.POST)
public ModelAndView postItem(HttpServletRequest request,
HttpServletResponse response) {
logger.info("Inside /secure/additem/postitem.htm");
try {
// How to get the MultipartEntity object here. More specifically i
// want to get back the Byte array from it
} catch (Exception ex) {
ex.printStackTrace();
}
return new ModelAndView("success");
}
我执行了这段代码,控制权转移到了服务器端。但我卡在了如何从multipartentity对象中获取字节数组的问题上。
编辑后的要求: 这是需求:用户从网站上传图片(已完成并且运作良好)。提交表单后,控制权传递到Spring控制器(已完成并且运作良好)。在Spring控制器中,我使用Multipart获取表单的内容(已完成并且运作良好)。现在我想调用一个Web服务,将图像字节数组发送到图像服务器(需要完成此任务)。在图像服务器上,我希望接收此Web服务请求,并从HTTPServlerRequest中获取所有字段,存储图像并返回(需要完成此任务)。
List formData = new ArrayList(request.getParts());
Part part = formData.get(0);
String parameterName = part.getName();
logger.info("STORC IMAGES - " + parameterName);
- user1241438