2011-12-15 86 views
1
final WebResource service = client.resource(UriBuilder.fromUri(WSURI).build()); 
    service.type(MediaType.APPLICATION_XML); 
    service.accept(MediaType.TEXT_PLAIN); 
    final Builder builder = service.header(HttpHeaders.AUTHORIZATION, HEADER); 

    File file = new File("/test.xml"); 
    builder.entity(file); 
    final ClientResponse response = builder.post(ClientResponse.class); 

我想发送一个XML文件并接收回应。我正在尝试的代码给出了400BAD请求,请有人帮忙。我不确定这里发生了什么问题。如何使用Jersey客户端发布XML文件?

+0

请分享您发布的URI,即WSURI的价值。 – 2011-12-15 14:25:58

回答

2

WebResource是不可变的 - 它的方法返回一个新的构建器实例。因此,您的代码片段的第二行和第三行不起作用,因为您忽略了它们的结果。拨打entity()方法时也是如此。您应该做以下代替:

final WebResource service = client.resource(UriBuilder.fromUri(WSURI).build()); 
Builder builder = service.type(MediaType.APPLICATION_XML); 
builder = builder.accept(MediaType.TEXT_PLAIN); 
builder = builder.header(HttpHeaders.AUTHORIZATION, HEADER); 

File file = new File("/test.xml"); 
builder = builder.entity(file); 
final ClientResponse response = builder.post(ClientResponse.class); 
相关问题