使用multipart时出现500内部服务器错误

时间:2016-02-26 09:02:08

标签: android multipart multipartentity

过去几天我真的遇到了这个问题。我需要实现的是通过Multipart将图像发送到服务器。我尝试了这段代码,但在服务器上它说请求不是多部分请求

这就是我尝试将图片发送到我的应用上的服务器的方式

MultipartEntity entity = new MultipartEntity();
entity.addPart(photosPath.getName(), new FileBody(photosPath));

这也是我的应用程序使用restful service

调用服务器的方式
@GET("/api/add/remark")
void addRemark(@Header("Cookies") HttpCookie cookie, @Query("tenantId") long tenantId, @Query("userId") long userId, @Query("comment") String commentJson, @Query("file") MultipartEntityBuilder multipartEntity, Callback<CreationResponse> callback);

在我的服务器端,这是我收到的方式

@RequestMapping("add/remark")
@Secured({"ROLE_ADMIN","ROLE_SITE_USER","ROLE_FIELDUSER"})
@JsonInclude(Include.NON_NULL)
public @ResponseBody 
CreationResponse addRemarkController1(@RequestParam String comment,@RequestParam Integer userId,@RequestParam long tenantId,@RequestParam("file") MultipartFile file,HttpServletRequest request) {}

我不知道如何解决这个问题。请帮忙

编辑1

MultipartEntity entity = new MultipartEntity();
ContentBody contentBody = new FileBody(photosPath,"imgae/jpeg");
entity.addPart("file", contentBody);

我试过这个,它不能正常工作

1 个答案:

答案 0 :(得分:0)

我认为,您应该使用@Multipart注释。这就是我这样做的方式

  @Multipart
@POST("/events")
CreateChatEventCallback sendChatImageSynchronously(@Header("Authorization") String token,
                                                   @Part("type") String type,
                                                   @Part("attachment") TypedFile image,
                                                   @Part("message_id") String messageId);

This article可能有帮助,