Making POST requests with parameters in GWT

20,438

Solution 1

Set the header of your request:

builder.setHeader("Content-type", "application/x-www-form-urlencoded");

Solution 2

This should already work - but when using POST, you'll have to read the submitted data differently in your Servlet (I assume, you're using Java on the server side?)

You could try it with a Servlet like this:

public class MyServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                   throws ServletException, IOException {

        System.out.println(req.getReader().readLine());
    }
}

Of course, you can copy the contents of req.getReader() or req.getInputStream() to your own buffer or string etc.

Share:
20,438
Lenz
Author by

Lenz

Updated on November 27, 2020

Comments

  • Lenz
    Lenz over 3 years

    I am trying to do a POST request with a set of parameters to a given URL. The problem I am having is that the POST request is made, but no parameters are passed.

        RequestBuilder builder = new RequestBuilder(RequestBuilder.POST, url);
    
        StringBuilder sb = new StringBuilder();
        for ( String k: parmsRequest.keySet() ) {
            String vx = URL.encodeComponent( parmsRequest.get(k));
            if ( sb.length() > 0 ) {
                sb.append("&");
            }
            sb.append(k).append("=").append(vx);
        }
    
        try {
            Request response = builder.sendRequest( sb.toString(), new RequestCallback() {
    
                public void onError(Request request, Throwable exception) {}
    
                public void onResponseReceived(Request request, Response response) {}
            });
        } catch (RequestException e) {}
    }
    

    This works just fine if I use mode GET and manually add the querystring to the request - but I need to use POST as the data to be passed along may be large....

  • Lenz
    Lenz over 13 years
    Thanks! My acceptor servlet was not working without.... never would have thought about that! Thanks!