users@jersey.java.net

Re: [Jersey] MultivaluedMap

From: Ronak Patel <ronak2121_at_yahoo.com>
Date: Wed, 28 Oct 2009 06:42:07 -0700 (PDT)

Paul,

I'm using Jersey version 1.0.3.1.

I tried doing put and add with the same result. I even tried to loop through the String array on my own and add one at a time.

Ronak




________________________________
From: Paul Sandoz <Paul.Sandoz_at_Sun.COM>
To: users_at_jersey.dev.java.net
Sent: Tue, October 27, 2009 11:44:47 PM
Subject: Re: [Jersey] MultivaluedMap

Hi Ronak,

What version of Jersey are you using?

I tried a quick test with 1.1.4-ea-SNAPSHOT and it worked as you expect. There is no code to explicitly write "," in the URI builder implementation.

BTW you can also do the following which is equivalent:

  resource.queryParam("id", "hello").queryParam("id", "there").get(ClientResponse.class);
 
Are you sure you did not do:

  queryParams.add("id", Arrays.asList(new String[]{"hello", "there"}));

?

which will create query string:

  ?id=%5Bhello,+there%5D

Paul.

On Oct 28, 2009, at 3:36 AM, Ronak Patel wrote:

Paul,
>
>
>I have a quite a basic question which I am embarrassed to ask but one I've been scratching my head about...
>
>
>I'm using MultivaluedMap and MultivaluedMapImpl to set my queryParams on the JAX-RS Jersey Client API
>
>
>and I don't see Jersey formulate my expected url.
>
>
>I am doing as so:
>
>
>Client client = Client.create();
>WebResource resource = client.resource("http://somehost.com/someuri");
>MultivaluedMap<String, String> queryParams = new MultivaluedMapImpl();
>
>
>queryParams.put("id", Arrays.asList(new String[]{"hello", "there"}));
>
>
>resource.queryParams(queryParams).get(ClientResponse.class);
>
>
>Now, I don't see Jersey formulate the list of parameters as id=hello&id=there...and instead I see id=hello,there which is not what I want.
>
>
>What should I be doing to obtain a url with id=hello&id=there?
>
>
>Thanks,
>
>
>Ronak
>
>