【发布时间】:2014-02-28 11:14:53
【问题描述】:
我在 Apache HTTPClient 和在 RESTLet 上运行的 JAX-RS 服务之间传输表单主体时遇到了很多困难。
这是我发送 PUT 请求的操作:
HttpPut put = new HttpPut("http://localhost:1337/api/user/default/inventory");
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
builder.addTextBody("url", item, ContentType.MULTIPART_FORM_DATA);
put.setEntity(builder.build());
HttpResponse resp = httpClient.execute(put);
我的服务看起来像这样:
@PUT
@Produces("application/json")
@Path("user/{id}/inventory")
Public Response addResourceToProfile(@FormParam("url") String url, @PathParam(value="id") String userId, @Context HttpHeaders headers){
try {
UserProfiles.get(userId).addToInventory(url);
return Response.ok("{result:\"success\"}", MediaType.APPLICATION_JSON_TYPE).build();
} catch (Exception e) {
return Response.serverError().build();
}
}
url 参数总是以 null...
【问题讨论】:
标签: java jax-rs httpclient restlet apache-httpclient-4.x