Android 網絡請求get/post工具類:NetUtil

openkk 12年前發布 | 70K 次閱讀 Android Android開發 移動開發

package com.net.util;

import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; 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.HttpUriRequest; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import org.json.JSONException; import org.json.JSONObject; import android.content.Context; import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.util.Log; import android.widget.Toast;

public class NetUtil { private static final String TAG = "NetUtil";

/**
 * 網絡連接是否可用
 */
public static boolean isConnnected(Context context) {
    ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (null != connectivityManager) {
        NetworkInfo networkInfo[] = connectivityManager.getAllNetworkInfo();

        if (null != networkInfo) {
            for (NetworkInfo info : networkInfo) {
                if (info.getState() == NetworkInfo.State.CONNECTED) {
                    Log.e(TAG, "the net is ok");
                    return true;
                }
            }
        }
    }
    Toast.makeText(context, "網絡連接失敗", Toast.LENGTH_SHORT).show();
    return false;
}

/**
 * 網絡可用狀態下,通過get方式向server端發送請求,并返回響應數據
 * 
 * @param strUrl 請求網址
 * @param context 上下文
 * @return 響應數據
 */
public static JSONObject getResponseForGet(String strUrl, Context context) {
    if (isConnnected(context)) {
        return getResponseForGet(strUrl);
    }
    return null;
}

/**
 * 通過Get方式處理請求,并返回相應數據
 * 
 * @param strUrl 請求網址
 * @return 響應的JSON數據
 */
public static JSONObject getResponseForGet(String strUrl) {
    HttpGet httpRequest = new HttpGet(strUrl);
    return getRespose(httpRequest);
}

/**
 * 網絡可用狀態下,通過post方式向server端發送請求,并返回響應數據
 * 
 * @param market_uri 請求網址
 * @param nameValuePairs 參數信息
 * @param context 上下文
 * @return 響應數據
 */
public static JSONObject getResponseForPost(String market_uri, List<NameValuePair> nameValuePairs, Context context) {
    if (isConnnected(context)) {
        return getResponseForPost(market_uri, nameValuePairs);
    }
    return null;
}

/**
 * 通過post方式向服務器發送請求,并返回響應數據
 * 
 * @param strUrl 請求網址
 * @param nameValuePairs 參數信息
 * @return 響應數據
 */
public static JSONObject getResponseForPost(String market_uri, List<NameValuePair> nameValuePairs) {
    if (null == market_uri || "" == market_uri) {
        return null;
    }
    HttpPost request = new HttpPost(market_uri);
    try {
        request.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        return getRespose(request);
    } catch (UnsupportedEncodingException e1) {
        e1.printStackTrace();
    }
    return null;
}

/**
 * 響應客戶端請求
 * 
 * @param request 客戶端請求get/post
 * @return 響應數據
 */
public static JSONObject getRespose(HttpUriRequest request) {
    try {
        HttpResponse httpResponse = new DefaultHttpClient().execute(request);
        int statusCode = httpResponse.getStatusLine().getStatusCode();
        if (HttpStatus.SC_OK == statusCode) {
            String result = EntityUtils.toString(httpResponse.getEntity());
            Log.i(TAG, "results=" + result);
            return new JSONObject(result);
        }
    } catch (ClientProtocolException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    } catch (JSONException e) {
        e.printStackTrace();
    }
    return null;
}

}</pre>轉自:http://blog.csdn.net/flying_vip_521/article/details/7656451

 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!