Friday, November 27, 2015

Android HttpURLConnection code for GET and POST Methods



package com.infodat.selltis2;

import android.util.Log;

import com.infodat.selltis2.utils.Constants;
import com.infodat.selltis2.utils.Utils;

import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;

import javax.net.ssl.HttpsURLConnection;

public class HttpWebServiceHandlerSample {

static String response = null;


public HttpWebServiceHandlerSample() {

}


/**
* Making service call
*
* @url - url to make request
* @method - http request method
* @params - http request params
*/


// Get Request using HttpURLConnection Code
public String makeGetServiceCall(String requestURL, HashMap<String, String> postDataParams) {

InputStream inputStream = null;

HttpURLConnection conn = null;

String response = "";
try {
/* forming th java.net.URL object */


String newRequestURL = requestURL + getQueryString(postDataParams);

URL url = new URL(newRequestURL);
Log.i("URL ", newRequestURL);

conn = (HttpURLConnection) url.openConnection();

/* optional request header */
conn.setRequestProperty("Content-Type", "application/json");

/* optional request header */
conn.setRequestProperty("Accept", "application/json");

// urlConnection.setConnectTimeout(100000);

/* for Get request */
conn.setRequestMethod("GET");

int statusCode = conn.getResponseCode();

/* 200 represents HTTP OK */
if (statusCode == 200) {

inputStream = new BufferedInputStream(conn.getInputStream());

response = convertInputStreamToString(inputStream);


} else {
response = Constants.NetWorkErrorMSG;
}

} catch (Exception e) {
// Log.i("Selltis N/w Error", e.getLocalizedMessage());
response = Constants.NetWorkErrorMSG;

} finally {

if (conn != null)
conn.disconnect();
}

Log.i("RESPONSE", response);
return response; // return response

}


// Convert all key/Value pairs to URL request parameters
private String getQueryString(HashMap<String, String> params) throws UnsupportedEncodingException {
StringBuilder result = new StringBuilder();
boolean first = true;
for (Map.Entry<String, String> entry : params.entrySet()) {
if (first)
first = false;
else
result.append("&");

result.append(URLEncoder.encode(entry.getKey(), "UTF-8"));
result.append("=");
result.append(URLEncoder.encode(entry.getValue(), "UTF-8"));
}

return result.toString();
}


// convert InputStream to String
private String convertInputStreamToString(InputStream inputStream) throws IOException {

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));

String line = "";
String result = "";

while ((line = bufferedReader.readLine()) != null) {
result += line;
}

/* Close Stream */
if (null != inputStream) {
inputStream.close();
}

return result;
}


// POST Request using HttpURLConnection Code
public String makePostServiceCall(String requestURL, String postJosnData) {
InputStream inputStream = null;
URL url;
String response = "";
HttpURLConnection conn = null;
try {
url = new URL(requestURL);

conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000);
conn.setConnectTimeout(10000);
conn.setRequestMethod("POST");
conn.setDoInput(true);
conn.setDoOutput(true);

/* optional request header */
conn.setRequestProperty("Content-Type", "application/json");

/* optional request header */
conn.setRequestProperty("Accept", "application/json");

OutputStream os = conn.getOutputStream();
BufferedWriter writer = new BufferedWriter(
new OutputStreamWriter(os, "UTF-8"));
writer.write(postJosnData);

// Log.i("POST URL", url.toString());
// Log.i("POST DATA", postJosnData);

writer.flush();
writer.close();
os.close();
int responseCode = conn.getResponseCode();

if (responseCode == HttpURLConnection.HTTP_OK) {

inputStream = new BufferedInputStream(conn.getInputStream());

response = convertInputStreamToString(inputStream);


} else {
response = Utils.ServerErrorMessage;

}
} catch (Exception e) {

// Log.i("Selltis N/w Error", e.getLocalizedMessage());
response = Utils.ServerErrorMessage;
} finally {

if (conn != null)
conn.disconnect();
}

return response;

}


}


No comments:

Post a Comment