HttpURLConnection with JSON Parsing Android Example (Android Studio Project)

Unduh this project here : HttpURLConnection with JSONParsing

Most Network - Connected Android apps use HTTP to send and receive data.
The Android platform includes the HttpURLConnection client.

Before performing network related operations we need to check whether device is connected to network or not and then proceed to perform network operations.

Screenshot of the output:
AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com..httpurlconnection">      <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>
 
activity_main.xml:
<?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">      <ScrollView         android:layout_width="match_parent"         android:layout_height="match_parent">          <TextView             android:id="@+id/textview"             android:layout_width="match_parent"             android:layout_height="match_parent"             android:textSize="20sp"/>     </ScrollView> </RelativeLayout>  MainActivity.java: 
package com..httpurlconnection;  import android.app.AlertDialog; import android.app.ProgressDialog; import android.content.Context; import android.content.DialogInterface; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.AsyncTask; import android.os.StrictMode; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.TextView;  import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject;  import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL;  public class MainActivity extends AppCompatActivity {     TextView textView;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          textView = (TextView) findViewById(R.id.textview);          ConnectivityManager connMgr = (ConnectivityManager)                 getSystemService(Context.CONNECTIVITY_SERVICE);         NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();         if (networkInfo != null && networkInfo.isConnected()) {             MyAsync myAsync = new MyAsync();             myAsync.execute();         } else {             AlertDialog.Builder builder = new AlertDialog.                                                   Builder(MainActivity.this);             builder.setTitle("Alert!");             builder.setMessage("Please check your network connection");             builder.setPositiveButton("OK",                                                new DialogInterface.OnClickListener() {                 @Override                 public void onClick(DialogInterface dialogInterface, int i) {                     finish();                 }             });             builder.create().show();         }     }      class MyAsync extends AsyncTask<Void, Void, String> {         ProgressDialog progressDialog;          @Override         protected void onPreExecute() {             super.onPreExecute();             progressDialog = ProgressDialog.show(MainActivity.this, "downloading", "please wait");         }          @Override         protected String doInBackground(Void... voids) {             String result = null;             try {                 URL url = new URL("http://api.androidhive.info/contacts/");                 HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();                  InputStream in = new BufferedInputStream(urlConnection.getInputStream());                 result = inputStreamToString(in);             } catch (Exception e) {                 e.printStackTrace();             }             return result;         }          @Override         protected void onPostExecute(String s) {             super.onPostExecute(s);             progressDialog.dismiss();             try {                 JSONObject jsonObject = new JSONObject(s);                 JSONArray jsonArray = jsonObject.getJSONArray("contacts");                 for (int i = 0; i < jsonArray.length(); i++) {                     String id = jsonArray.getJSONObject(i).getString("id");                     String name = jsonArray.getJSONObject(i).getString("name");                     String email = jsonArray.getJSONObject(i).getString("email");                      String mobile = jsonArray.getJSONObject(i).getJSONObject("phone").getString("mobile");                      textView.append(id + "\n");                     textView.append(name + "\n");                     textView.append(email + "\n");                     textView.append(mobile + "\n\n");                  }              } catch (JSONException e) {                 e.printStackTrace();             }          }     }      private String inputStreamToString(InputStream is) {         String rLine = "";         StringBuilder answer = new StringBuilder();          InputStreamReader isr = new InputStreamReader(is);          BufferedReader rd = new BufferedReader(isr);          try {             while ((rLine = rd.readLine()) != null) {                 answer.append(rLine);             }         } catch (IOException e) {             e.printStackTrace();         }         return answer.toString();     } } 

Komentar