Bukan Materi Pelajaran yang Sulit, tapi Memulai Untuk Belajar itu yang Sulit.

Http Request For Check Internet Connection On Your Android Applications

2:37 PM Posted by Unknown No comments

بِسْمِ اللَّهِ الرَّحْمَنِ الرَّحِيم
 
This code use for check internet connection on your application  when needs acess internet for running API client-server or other access URL.
the first you create java file with name class

HttpRequest.java
package com.rki.yourapps.internet;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;

import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.client.methods.HttpRequestBase;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;

import android.util.Log;

public class HttpRequest {

 public HttpResponse response = null;

 private String url = null;
 private Map params = new HashMap();
 private Method requestMethod = null;

 final int CONN_WAIT_TIME = 10000;
 final int CONN_DATA_WAIT_TIME = 0;
 
 public enum Method {
  GET, POST
 }

 public HttpRequest(String url, Map params, Method requestMethod) {
  this.url = url;
  this.params = params;
  this.requestMethod = requestMethod;
 }
 
 public HttpRequest(String url, Method requestMethod) {
  this.url = url;
  this.requestMethod = requestMethod;
 }

 public String sendRequest() {

  Log.d("HttpRequest@sendRequest", "Starting request...");

  Log.d("HttpRequest@sendRequest", "URL: " + this.url + ", requestMethod: "
    + this.requestMethod);

  HttpParams httpParams = new BasicHttpParams();      
  HttpConnectionParams.setConnectionTimeout(httpParams, CONN_WAIT_TIME);
  HttpConnectionParams.setSoTimeout(httpParams, CONN_DATA_WAIT_TIME);

  // Create a new HttpClient and Post Header
  DefaultHttpClient httpClient = new DefaultHttpClient(httpParams);  
  HttpRequestBase httpRequest = null;

  InputStream responseStream = null;
  String responseString = null;

  try {
   if (this.requestMethod == Method.POST) {
    httpRequest = new HttpPost(this.url);

    if (httpRequest != null) {
     ((HttpPost) httpRequest).setEntity(new UrlEncodedFormEntity(
       encodePostParameter(this.params)));
     // Execute HTTP Post Request
     // Execute HTTP Post Request
     try {
      @SuppressWarnings("rawtypes")
      Class strictModeClass = Class.forName("android.os.StrictMode");
      @SuppressWarnings("rawtypes")
      Class strictModeThreadPolicyClass = Class
        .forName("android.os.StrictMode$ThreadPolicy");
      Object laxPolicy = strictModeThreadPolicyClass.getField("LAX").get(
        null);
      @SuppressWarnings("unchecked")
      java.lang.reflect.Method method_setThreadPolicy = strictModeClass.getMethod(
        "setThreadPolicy", strictModeThreadPolicyClass);
      method_setThreadPolicy.invoke(null, laxPolicy);
     } catch (Exception e) {

     }
     response = httpClient.execute(httpRequest);
    }

   } else if (this.requestMethod == Method.GET) {
    httpRequest = new HttpGet(this.url + encodeGetParameter(this.params));

    if (httpRequest != null) {
     // Execute HTTP Post Request
     try {
      @SuppressWarnings("rawtypes")
      Class strictModeClass = Class.forName("android.os.StrictMode");
      @SuppressWarnings("rawtypes")
      Class strictModeThreadPolicyClass = Class
        .forName("android.os.StrictMode$ThreadPolicy");
      Object laxPolicy = strictModeThreadPolicyClass.getField("LAX").get(
        null);
      @SuppressWarnings("unchecked")
      java.lang.reflect.Method method_setThreadPolicy = strictModeClass.getMethod(
        "setThreadPolicy", strictModeThreadPolicyClass);
      method_setThreadPolicy.invoke(null, laxPolicy);
     } catch (Exception e) {

     }
     response = httpClient.execute(httpRequest);
    }
   }

   if (response != null) {
    responseStream = response.getEntity().getContent();
    responseString = generateResponseString(responseStream);
   }

  } catch (ClientProtocolException e) {
   e.printStackTrace();
  } catch (IOException e) {
   e.printStackTrace();
  }

  Log.d("HttpRequest@sendRequest", "Finished!");

  return responseString;
 }

 public List encodePostParameter(Map params) {
  List nameValuePairs = new ArrayList(1);
  Set keys = params.keySet();
  for (String key : keys) {
   String value = params.get(key);
   nameValuePairs.add(new BasicNameValuePair(key, value));
  }
  return nameValuePairs;
 }

 @SuppressWarnings("deprecation")
 public String encodeGetParameter(Map params) {
  StringBuilder buff = new StringBuilder("?");
  Set keys = params.keySet();
  for (String key : keys) {
   String value = params.get(key);
   buff.append(key).append("=").append(URLEncoder.encode(value));
  }
  return buff.toString();
 }

 public String generateResponseString(InputStream stream) {
  InputStreamReader reader = new InputStreamReader(stream);
  BufferedReader buffer = new BufferedReader(reader);
  StringBuilder sb = new StringBuilder();

  try {
   String cur;
   while ((cur = buffer.readLine()) != null) {
    sb.append(cur + "\n");
   }
  } catch (IOException e) {
   e.printStackTrace();
  }

  try {
   stream.close();
  } catch (IOException e) {
   e.printStackTrace();
  }
  return sb.toString();
 }

 public void setEntity(UrlEncodedFormEntity urlEncodedFormEntity) {
  // TODO Auto-generated method stub
 }
}

and second, you create java file with name class
InternetChecker.java

package com.rki.demokrado.internet;

import android.content.Context;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;

public class InternetChecker {
 public static boolean isNetworkAvailable(Context context) {
  boolean outcome = false;

  if (context != null) {
   ConnectivityManager cm = (ConnectivityManager) context
     .getSystemService(Context.CONNECTIVITY_SERVICE);

   NetworkInfo[] networkInfos = cm.getAllNetworkInfo();

   for (NetworkInfo tempNetworkInfo : networkInfos) {

    if (tempNetworkInfo.isConnected()) {
     outcome = true;
     break;
    }
   }
  }

  return outcome;
 }
} 

And the last, you can chect internet connection use conndition operator "IF" like this script:

if (InternetChecker.isNetworkAvailable(getApplicationContext()) == true) {
 //if there is a internet connection
} else {
 //if no internet connection
}

And don't forget you have to declaration "Permission Internet" on AndroidManifest.xml


0 komentar:

Post a Comment