Search code examples
javaplayframework-2.1

How do I set params for WS.post() in play 2.1 Java


I'm trying to perform a post with play.api.libs.ws.WS but I can't figure out how to set the params, my code:

Promise<Response> promise = WS.url(Play.application().configuration()
                .getString("sms.service.url")).post();

.post takes (T body, play.api.http.Writeable wrt, play.api.http.ContentTypeOf ct) but I don't understand how I should pass the params there. The documentation only states:

Promise<WS.Response> result = WS.url("http://localhost:9001").post("content");

How do I set the content eg. param1=foo and param2=bar?


Solution

  • Try constructing the request like this:

    WS.url("http://localhost:9001")
        .setQueryParameter("param1", "foo")
        .setQueryParameter("param2", "bar")
        .post("content");
    

    The method url(java.lang.String url) returns a WS.WSRequestHolder reference which can be used to modify the original request using chained calls to setQueryParameter.