Screen Shot:
Download Source Code
Step 1:
Open activity_main.xml file and copy the below code.
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.prasad.getpostrequestex.MainActivity"> <Button android:id="@+id/getRequest" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:layout_marginTop="50dp" android:background="@color/colorPrimary" android:padding="8dp" android:text="Get Request" android:textAllCaps="false" android:textColor="#ffffff" android:textSize="18dp" /> <Button android:id="@+id/postRequest" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/getRequest" android:layout_centerHorizontal="true" android:layout_margin="30dp" android:background="@color/colorPrimary" android:padding="8dp" android:text="Post Request" android:textAllCaps="false" android:textColor="#ffffff" android:textSize="18dp" /> </RelativeLayout>
Step 2:
Create ConnectionDetector.java class to check Internet connection and copy below code.
package com.prasad.getpostrequestex.background; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; public class ConnectionDetector { /** * Checking for all possible internet providers * **/ public static boolean isConnectingToInternet(Context _context){ ConnectivityManager connectivity = (ConnectivityManager) _context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivity != null) { NetworkInfo[] info = connectivity.getAllNetworkInfo(); if (info != null) for (int i = 0; i < info.length; i++) if (info[i].getState() == NetworkInfo.State.CONNECTED) { return true; } } return false; } }
Step 3:
Create ServiceResponse.java model class to store success or failure response and copy below code.
package com.prasad.getpostrequestex.background; public class ServiceResponse { private boolean isSuccessOrFail; private String jsonResponse; public void setIsSuccessOrFail(boolean isSuccessOrFail) { this.isSuccessOrFail = isSuccessOrFail; } public boolean isSuccessOrFail() { return isSuccessOrFail; } public String getJsonResponse() { return jsonResponse; } public void setJsonResponse(String jsonResponse) { this.jsonResponse = jsonResponse; } public ServiceResponse(boolean isSuccessOrFail, String jsonResponse) { this.isSuccessOrFail = isSuccessOrFail; this.jsonResponse = jsonResponse; } }
Step 4:
Create WebServiceCallBack.java interface to return response to activity class and copy below code.
package com.prasad.getpostrequestex.background; public interface WebServiceCallBack { void onResponseReceived(Object response); }
Step 5:
Create WebServiceAsyncTask.java class to call background assync task and copy below code.
package com.prasad.getpostrequestex.background; import android.app.ProgressDialog; import android.content.Context; import android.os.AsyncTask; import java.util.HashMap; public class WebServiceAsyncTask extends AsyncTask<Object, Void, Object> { private ProgressDialog pDialog; private Context context; private WebServiceCallBack webServiceListener; private String requestUrl; private HashMap<String, String> extraParams; private int requestType; private boolean showProgressBar; public WebServiceAsyncTask(Context context, WebServiceCallBack webServiceListener, String requestUrl, HashMap<String, String> extraParams, int requestType, boolean showProgressBar) { this.context = context; this.webServiceListener = webServiceListener; this.requestUrl = requestUrl; this.extraParams = extraParams; this.requestType = requestType; this.showProgressBar = showProgressBar; } @Override protected void onPreExecute() { super.onPreExecute(); if (showProgressBar) { showProgressDialog(); } } @Override protected Object doInBackground(Object[] params) { synchronized (this) { boolean networkStatus = ConnectionDetector.isConnectingToInternet(context); ServiceResponse serviceResponse = null; if (networkStatus) { HttpWebServiceHandler serviceHandler = new HttpWebServiceHandler(); if (requestType == 1) { serviceResponse = serviceHandler.getServiceCall(requestUrl, extraParams); } else if (requestType == 2) { serviceResponse = serviceHandler.postServiceCall(requestUrl, extraParams); } } else { serviceResponse = new ServiceResponse(false, HttpWebServiceHandler.NoNetWorkErrorMSG); } return serviceResponse; } } @Override protected void onPostExecute(Object reponse) { super.onPostExecute(reponse); try { webServiceListener.onResponseReceived(reponse); if (showProgressBar) { dismissProgressDialog(); showProgressBar = false; } } catch (final IllegalArgumentException e) { } catch (final Exception e) { } finally { pDialog = null; } } public void showProgressDialog() { pDialog = new ProgressDialog(context); pDialog.setMessage("Please wait..."); pDialog.setCancelable(false); if (!pDialog.isShowing()) pDialog.show(); } public void dismissProgressDialog() { if (pDialog != null && pDialog.isShowing()) pDialog.dismiss(); } }
Step 6:
Create HttpWabServiceHandler.java class file to call Get and Post requests and copy below code.
package com.prasad.getpostrequestex.background; import android.util.Log; import org.json.JSONObject; 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 HttpWebServiceHandler { static String response = null; public static final String NoNetWorkErrorMSG = "No Internet Connection !!!"; public static final String ServerErrorMSG = "Error in Connection !!!"; private static JSONObject jsonObj; public HttpWebServiceHandler() { } // Get Request using HttpURLConnection Code public ServiceResponse getServiceCall(String requestURL, HashMap<String, String> params) { InputStream inputStream = null; HttpURLConnection conn = null; ServiceResponse serviceResponse = null; String newRequestURL = ""; try { if (params != null) { newRequestURL = requestURL + getQueryString(params); } else { newRequestURL = requestURL; } 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"); conn.setReadTimeout(500000); conn.setConnectTimeout(500000); /* for Get request */ conn.setRequestMethod("GET"); int statusCode = conn.getResponseCode(); /* 200 represents HTTP OK */ if (statusCode == HttpsURLConnection.HTTP_OK) { inputStream = new BufferedInputStream(conn.getInputStream()); response = convertInputStreamToString(inputStream); Log.i("Response", response); serviceResponse = new ServiceResponse(true, response); } else { response = ServerErrorMSG; serviceResponse = new ServiceResponse(false, response); } } catch (Exception e) { e.printStackTrace(); response = ServerErrorMSG; serviceResponse = new ServiceResponse(false, response); } finally { if (conn != null) conn.disconnect(); } // Log.i("RESPONSE", response); return serviceResponse; // return response } // POST Request using HttpURLConnection Code public ServiceResponse postServiceCall(String requestURL, HashMap<String, String> postDataParams) { InputStream inputStream = null; URL url; ServiceResponse serviceResponse = null; HttpURLConnection conn = null; try { String postParams = getQueryString(postDataParams); url = new URL(requestURL); conn = (HttpURLConnection) url.openConnection(); conn.setReadTimeout(500000); conn.setConnectTimeout(500000); conn.setRequestMethod("POST"); conn.setDoInput(true); conn.setDoOutput(true); conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); OutputStream os = conn.getOutputStream(); BufferedWriter writer = new BufferedWriter( new OutputStreamWriter(os, "UTF-8")); writer.write(postParams); writer.flush(); writer.close(); os.close(); int responseCode = conn.getResponseCode(); if (responseCode == HttpsURLConnection.HTTP_OK) { inputStream = new BufferedInputStream(conn.getInputStream()); response = convertInputStreamToString(inputStream); serviceResponse = new ServiceResponse(true, response); Log.i("Response", response); } else { response = ServerErrorMSG; serviceResponse = new ServiceResponse(false, response); } } catch (Exception e) { e.printStackTrace(); response = ServerErrorMSG; serviceResponse = new ServiceResponse(false, response); } finally { if (conn != null) conn.disconnect(); } return serviceResponse; } 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; } 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(); } }
Step 7:
Open MainActivity.java class file and copy below code.
package com.prasad.getpostrequestex; import android.content.Context; import android.content.DialogInterface; import android.os.Bundle; import android.support.v7.app.AlertDialog; import android.support.v7.app.AppCompatActivity; import android.view.View; import android.widget.Button; import com.prasad.getpostrequestex.background.ServiceResponse; import com.prasad.getpostrequestex.background.WebServiceAsyncTask; import com.prasad.getpostrequestex.background.WebServiceCallBack; import java.util.HashMap; public class MainActivity extends AppCompatActivity implements WebServiceCallBack { private Button getRequestBtn, postRequestBtn; private int serviceRequest = 1; private String url; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initControls(); } private void initControls() { getRequestBtn = (Button) findViewById(R.id.getRequest); postRequestBtn = (Button) findViewById(R.id.postRequest); getRequestBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { getRequestCall(); } }); postRequestBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { postRequestCall(); } }); } private void getRequestCall() { serviceRequest = 1; url = "http://androidexample.com/media/webservice/JsonReturn.php"; //Replace with your url WebServiceAsyncTask loginAsyncTask = new WebServiceAsyncTask(this, this, url, null, 1, true); loginAsyncTask.execute(); } private void postRequestCall() { serviceRequest = 2; url = ""; //Replace with your url // if you want pass parameters,use hash map like below HashMap<String, String> params = new HashMap<String, String>(); // params.put("userName", userName); // params.put("password", password); WebServiceAsyncTask loginAsyncTask = new WebServiceAsyncTask(this, this, url, params, 2, true); loginAsyncTask.execute(); } @Override public void onResponseReceived(Object response) { try { ServiceResponse serviceResponse = (ServiceResponse) response; String jsonResponse = serviceResponse.getJsonResponse(); if (serviceResponse.isSuccessOrFail()) { //Get Request response if (serviceRequest == 1) { //As per response parse json object } else if (serviceRequest == 2) { //Post Request response //As per response parse json object } } else { showAlertDialog(this, jsonResponse); } } catch (NullPointerException e) { e.printStackTrace(); } } public static void showAlertDialog(Context context, String message) { new AlertDialog.Builder(context) .setTitle(context.getResources().getString(R.string.app_name)) .setCancelable(false) .setMessage(message) .setPositiveButton("OK", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { } }) .show(); } }
Step 8:
Open AndroidManifest.xml file and add the internet permissions.
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.prasad.getpostrequestex"> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Hello! This is my first visit to your blog! We are a team of volunteers and starting a new initiative in a community in the same niche. Your blog provided us useful information to work on. You have done an outstanding job.
ReplyDeleteAWS Online Training | Online AWS Certification Course - Gangboard
I found your blog while searching for the updates, I am happy to be here. Very useful content and also easily understandable providing.. Believe me I did wrote an post about tutorials for beginners with reference of your blog.
ReplyDeleteangularjs Training in chennai
angularjs Training in chennai
angularjs-Training in tambaram
angularjs-Training in sholinganallur
angularjs-Training in velachery
Your very own commitment to getting the message throughout came to be rather powerful and have consistently enabled employees just like me to arrive at their desired goals.
ReplyDeleteData Science training in kalyan nagar | Data Science training in OMR
Data Science training in chennai | Data science training in velachery
Data science training in tambaram | Data science training in jaya nagar
This blog is the general information for the feature. You got a good work for these blog.We have a developing our creative content of this mind.Thank you for this blog. This for very interesting and useful.
ReplyDeletedevops online training
aws online training
data science with python online training
data science online training
rpa online training
mmorpg oyunlar
ReplyDeleteinstagram takipçi satın al
tiktok jeton hilesi
Tiktok Jeton Hilesi
Saç ekim antalya
İnstagram takipci satın al
İNSTAGRAM TAKİPÇİ SATIN AL
Mt2 pvp serverlar
instagram takipçi satın al
smm panel
ReplyDeletesmm panel
İS İLANLARİ BLOG
İnstagram Takipçi Satın Al
hirdavatciburada.com
beyazesyateknikservisi.com.tr
servis
tiktok jeton hilesi