Thursday 9 June 2016

Consuming Web service in Java

Consume Web service using HttpURLConnection
We can call Web services method in java using classes URL and HttpURLConnection.
And can be used with Android to consume web services 
URL: Class URL represents a Uniform Resource Locator, a pointer to a "resource" on the World Wide Web. A resource can be something as simple as a file or a directory, or it can be a reference to a more complicated object, such as a query to a database or to a search engine.

HttpURLConnection: The abstract class URLConnection is the superclass of all classes that represent a communications link between the application and a URL. Instances of this class can be used both to read from and to write to the resource referenced by the URL. In general, creating a connection to a URL is a multistep process:
 
Method name:
openConnection():Manipulate parameters that affect the connection to the remote resource.

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;

import javax.net.ssl.HttpsURLConnection;

import org.json.JSONException;
import org.json.JSONObject;

public class HttpServiceHandler {
    URL url;
    HttpURLConnection connection;
    DataOutputStream dataOutputStrea;

    public static void main(String[] args) {
       String path = "http://localhost:90/testmethod/postdata";
       String method = "POST";
      
       try {
           HttpServiceHandler serviceHandler= new HttpServiceHandler(path, method);
           serviceHandler.setParameter(serviceHandler.getJson());
           System.out.println(serviceHandler.getResponse());
       } catch (Exception e) { 
           e.printStackTrace();
       }
    }
   
    public HttpServiceHandler(String requestUrl, String methodType) throws IOException{
       url = new URL(requestUrl);
       connection = (HttpURLConnection) url.openConnection(); 
       connection.setDoOutput(true);
       connection.setDoInput(true);
       connection.setInstanceFollowRedirects(false);
       connection.setRequestMethod(methodType);
       connection.setRequestProperty("Content-Type", "application/json");
       connection.setRequestProperty("charset", "utf-8");
       connection.setUseCaches (false);
      
       dataOutputStrea = new DataOutputStream(connection.getOutputStream ());
    }
   
    public void setParameter(JSONObject queryParameter) throws IOException{
       dataOutputStrea.writeBytes(queryParameter.toString());
       dataOutputStrea.flush();
       dataOutputStrea.close();
    }
   
    public String getResponse() throws IOException {
       StringBuilder response = new StringBuilder();
       int responseCode = connection.getResponseCode();

       if (responseCode == HttpsURLConnection.HTTP_OK) {
           String line;
           BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));
           while ((line = br.readLine()) != null) {
              response.append(line);
           }
       } else {
           response.append("");
       }
       return response.toString();
    }
   
   
    private JSONObject getJson() throws JSONException{
       JSONObject jsonParam = new JSONObject();
       jsonParam.put("Username", "user1");
       jsonParam.put("Pasword", "123456");
       return jsonParam;
    }
}








No comments:

Post a Comment