用于混合参数表单的java rest客户端

时间:2014-05-27 12:19:33

标签: java xml rest jersey-2.0 jersey-client

我有一个rest方法,它接受一个map参数的两个参数,另一个是String变量

 @POST
 public returnValue postMethod(  Map<String,String>  anotherMap,
                       @QueryParam("name") String name    
                ) {}

很容易将每个参数单独传递到哪里 map参数可以使用XML传递,如下所示:

 ClientResponse response = service
        .type(MediaType.APPLICATION_XML)
        .accept(MediaType.APPLICATION_XML)
        .post(ClientResponse.class, map).getEntity(ClientResponse.class).

并且可以像往常一样传递QueryParam:

service.type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
             .accept(MediaType.APPLICATION_JSON_TYPE)
                         .post(ClientResponse.class, f)

其中f是表格,

问题是:我们如何从同一个Java客户端将两个参数一起传递?

1 个答案:

答案 0 :(得分:0)

所以你问 - 我如何POST Map String作为query param传递?发送和接收XML。

我是这样做的:

ClientBuilder clientBuilder = ClientBuilder.newBuilder();
//Do some building code
Client client = clientBuilder.build();
WebTarget target =  client.target(endPoint);
Response response = target
  .queryParam("name", "value")
  .request(MediaType.APPLICATION_XML_TYPE)
  .post(Entity.entity(map), MediaType.APPLICATION_XML_TYPE);

希望这会有所帮助。