user1904731
user1904731

Reputation: 91

How to read in a Java client a response from servlet?

I have a Java application :

-this application send a String :

HttpClient httpClient = new DefaultHttpClient();

    try {
        HttpPost request = new HttpPost(url);
        StringEntity params = new StringEntity(xml);
        request.addHeader("content-type", "application/x-www-form-urlencoded");
        request.setEntity(params);
        HttpResponse response = httpClient.execute(request);

        // handle response here...
        String res= response.toString();
        System.out.println("RESPONSE=>\n"+response); //where i read the response
    } catch (Exception ex) {
        // handle exception here
    } finally {
        httpClient.getConnectionManager().shutdown();
    }

I work with this String in my servlet and I just want to send a String response.

response.setContentType("text/html;charset=UTF-8");
    PrintWriter out = response.getWriter();
    out.print("TEST");

But when i read the response i just have my header:

RESPONSE=>
HTTP/1.1 200 OK [X-Powered-By: Servlet/3.0 JSP/2.2 (GlassFish Server Open Source Edition 3.1.2.2 Java/Oracle Corporation/1.7), Server: GlassFish Server Open Source Edition 3.1.2.2, Content-Type: text/html;charset=UTF-8, Content-Length: 83, Date: Fri, 14 Dec 2012 17:17:07 GMT]

Someone can help me ?

Upvotes: 4

Views: 5216

Answers (1)

Perception
Perception

Reputation: 80593

You are using the wrong method to read your response date. Calling:

String res= response.toString();

Just gives you the string representation of the Response object, not the data it contains. The Apache Http Commons library has a utility class that makes it easy to read responses, called EntityUtils. Use this instead to read the entire response body. Don't forget that you need to verify that the request actually completed successfully before doing this:

if(response.getStatusLine().getStatusCode() == 200) {
    final String res = EntityUtils.toString(response.getEntity());
}

Upvotes: 3

Related Questions