Configure HTML/JavaScript

Sunday, August 3, 2014

Making Http call from core java - different ways

There are many ways we make http calls to web server in many situation. We application server always receives requests in many forms and send back response in many forms.

Now a days there are a lots of framework, library available to kame http call easy to the web server like Spring, Struts, Ajax, etc.

 But if the requirement is simple and need just a simple and light weight http call to the server, you will not like to use these heavy library which comes will many extra functionality which you dont need. In this case the best way is to use the inbuild hava http functionality to get response data from the web server.

below are few example which will help you to understand batter

Using HttpConnect

conn = (HttpURLConnection) new URL(url).openConnection();
conn.setRequestMethod(method);
conn.setRequestProperty("X-DocuSign-Authentication", httpAuthHeader);
conn.setRequestProperty("Accept", "application/json");
if (method.equalsIgnoreCase("POST")) {
  conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
  conn.setRequestProperty("Content-Length", Integer.toString(body.length()));
            conn.setDoOutput(true);
}


status = conn.getResponseCode(); // triggers the request
if (status != 200) { //// 200 = OK 
    errorParse(conn, status);
    return;
}

InputStream is = conn.getInputStream();

Another way is using HttpPost
  try {
   // 1. create HttpClient
   HttpClient httpclient = new DefaultHttpClient();

   // 2. make POST request to the given URL
   HttpPost httpPost = new HttpPost(authUrl);

   String json = "";

   // 3. build jsonObject
   JSONObject jsonObject = new JSONObject();
   jsonObject.accumulate("phone", "phone");

   // 4. convert JSONObject to JSON to String
   json = jsonObject.toString();

   // 5. set json to StringEntity
   StringEntity se = new StringEntity(json);

   // 6. set httpPost Entity
   httpPost.setEntity(se);

   // 7. Set some headers to inform server about the type of the
   // content
   httpPost.addHeader("Accept", "application/json");
   httpPost.addHeader("Content-Type", "application/x-www-form-urlencoded");

   // 8. Execute
   HttpResponse httpResponse = httpclient.execute(httpPost);

   // 9. receive response as inputStream
   inputStream = httpResponse.getEntity().getContent();
   String response = getResponseBody(inputStream);
   
   System.out.println(response);

  } catch (ClientProtocolException e) {
   System.out.println("ClientProtocolException : " + e.getLocalizedMessage());
  } catch (IOException e) {
   System.out.println("IOException:" + e.getLocalizedMessage());
  } catch (Exception e) {
   System.out.println("Exception:" + e.getLocalizedMessage());
  }