клиент java rest для смешанных форм параметров

У меня есть метод отдыха, который принимает два параметра: один параметр карты, а другой - строковую переменную.

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

Легко передать каждый параметр отдельно, где параметр карты может быть передан с использованием 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-клиентом?


person user3580691    schedule 27.05.2014    source источник


Ответы (1)


Итак, вы спрашиваете, как мне 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);

Надеюсь это поможет.

person Will    schedule 02.06.2014