最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android封裝的http請求實用工具類

 更新時間:2013年11月18日 16:25:02   作者:  
提供一個Android封裝的http請求實用工具類,在做ANDROID網(wǎng)絡(luò)開發(fā)中這個經(jīng)常要用到,大家可以參考下面的工具類修改成自己的工具


復(fù)制代碼 代碼如下:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URLEncoder;
import java.security.KeyStore;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.apache.http.HttpResponse;
import org.apache.http.HttpVersion;
import org.apache.http.client.HttpClient;
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.conn.ClientConnectionManager;
import org.apache.http.conn.scheme.PlainSocketFactory;
import org.apache.http.conn.scheme.Scheme;
import org.apache.http.conn.scheme.SchemeRegistry;
import org.apache.http.conn.ssl.SSLSocketFactory;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpParams;
import org.apache.http.params.HttpProtocolParams;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

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

/**
 * 網(wǎng)絡(luò)工具類
 *
 * @author malinkang
 *
 */

public class NetUtils {
    /**
     * 對網(wǎng)絡(luò)連接狀態(tài)進行判斷
     *
     * @return true, 可用; false, 不可用
     */
    public static boolean isOpenNetwork(Context context) {
        ConnectivityManager connManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connManager.getActiveNetworkInfo() != null) {
            return connManager.getActiveNetworkInfo().isAvailable();
        }

        return false;
    }

    /**
     * get請求
     *
     * @param urlString
     * @param params
     * @return
     */
    public static String getRequest(String urlString, Map<String, String> params) {

        try {
            StringBuilder urlBuilder = new StringBuilder();
            urlBuilder.append(urlString);

            if (null != params) {

                urlBuilder.append("?");

                Iterator<Entry<String, String>> iterator = params.entrySet()
                        .iterator();

                while (iterator.hasNext()) {
                    Entry<String, String> param = iterator.next();
                    urlBuilder
                            .append(URLEncoder.encode(param.getKey(), "UTF-8"))
                            .append('=')
                            .append(URLEncoder.encode(param.getValue(), "UTF-8"));
                    if (iterator.hasNext()) {
                        urlBuilder.append('&');
                    }
                }
            }
            // 創(chuàng)建HttpClient對象
            HttpClient client = getNewHttpClient();
            // 發(fā)送get請求創(chuàng)建HttpGet對象
            HttpGet getMethod = new HttpGet(urlBuilder.toString());
            HttpResponse response = client.execute(getMethod);
            // 獲取狀態(tài)碼
            int res = response.getStatusLine().getStatusCode();
            if (res == 200) {

                StringBuilder builder = new StringBuilder();
                // 獲取響應(yīng)內(nèi)容
                BufferedReader reader = new BufferedReader(
                        new InputStreamReader(response.getEntity().getContent()));

                for (String s = reader.readLine(); s != null; s = reader
                        .readLine()) {
                    builder.append(s);
                }
                return builder.toString();
            }
        } catch (Exception e) {

        }

        return null;
    }

    /**
     * post請求
     *
     * @param urlString
     * @param params
     * @return
     */
    public static String postRequest(String urlString,
            List<BasicNameValuePair> params) {

        try {
            // 1. 創(chuàng)建HttpClient對象
            HttpClient client = getNewHttpClient();
            // 2. 發(fā)get請求創(chuàng)建HttpGet對象
            HttpPost postMethod = new HttpPost(urlString);
            postMethod.setEntity(new UrlEncodedFormEntity(params, HTTP.UTF_8));
            HttpResponse response = client.execute(postMethod);
            int statueCode = response.getStatusLine().getStatusCode();
            if (statueCode == 200) {
                System.out.println(statueCode);
                return EntityUtils.toString(response.getEntity());
            }
        } catch (Exception e) {

        }

        return null;
    }

    // 保存時+當時的秒數(shù),
    public static long expires(String second) {
        Long l = Long.valueOf(second);

        return l * 1000L + System.currentTimeMillis();
    }

    private static HttpClient getNewHttpClient() {
        try {
            KeyStore trustStore = KeyStore.getInstance(KeyStore
                    .getDefaultType());
            trustStore.load(null, null);

            SSLSocketFactory sf = new SSLSocketFactoryEx(trustStore);
            sf.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);

            HttpParams params = new BasicHttpParams();
            HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
            HttpProtocolParams.setContentCharset(params, HTTP.UTF_8);

            SchemeRegistry registry = new SchemeRegistry();
            registry.register(new Scheme("http", PlainSocketFactory
                    .getSocketFactory(), 80));
            registry.register(new Scheme("https", sf, 443));

            ClientConnectionManager ccm = new ThreadSafeClientConnManager(
                    params, registry);

            return new DefaultHttpClient(ccm, params);
        } catch (Exception e) {
            return new DefaultHttpClient();
        }
    }
}

另一種封裝好的get請求,最近經(jīng)常用的:

復(fù)制代碼 代碼如下:

public class HttpUtils {

    private final static String TAG = "EasyTokenSevice";
    private final static int connectionTimeout = 5000;
    private static InputStream inputStream = null;
    private static String urlStr = null;
    private static boolean isConnecting;

    /**
     * 封裝http get請求
     *
     * @param url
     * @return is
     */
    public static InputStream get(String url)throws IOException ,Exception {

        urlStr = url;
        isConnecting = true;

            HttpGet httpGet = new HttpGet(urlStr);
            HttpParams httpParameters = new BasicHttpParams();
            HttpConnectionParams.setConnectionTimeout(httpParameters,
                    connectionTimeout);

            DefaultHttpClient httpClient = new DefaultHttpClient(httpParameters);
            HttpResponse response = httpClient.execute(httpGet);

            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                HttpEntity entity = response.getEntity();
                inputStream = entity.getContent();
                return inputStream;}
            else return null;

               

       
    }
}

相關(guān)文章

  • android中soap協(xié)議使用(ksoap調(diào)用webservice)

    android中soap協(xié)議使用(ksoap調(diào)用webservice)

    kSOAP是如何調(diào)用ebservice的呢,首先要使用SoapObject,這是一個高度抽象化的類,完成SOAP調(diào)用??梢哉{(diào)用它的addProperty方法填寫要調(diào)用的webservice方法的參數(shù)
    2014-02-02
  • 解析Android中的Serializable序列化

    解析Android中的Serializable序列化

    這篇文章主要介紹了Android中的Serializable序列化技術(shù),通過Serializable可以需要的朋友可以參考下
    2016-03-03
  • Android 打開本地pdf文件

    Android 打開本地pdf文件

    Android 中打開pdf文件也是一種很常見的場景,本文主要介紹了Android打開本地pdf文件的方法。具有很好的參考價值。下面跟著小編一起來看下吧
    2017-04-04
  • Android開發(fā)之在xml中設(shè)置自定義屬性的方法

    Android開發(fā)之在xml中設(shè)置自定義屬性的方法

    下面小編就為大家分享一篇Android開發(fā)之在xml中設(shè)置自定義屬性的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • Android 自定義view實現(xiàn)TopBar效果

    Android 自定義view實現(xiàn)TopBar效果

    這篇文章主要為大家詳細介紹了Android 自定義view實現(xiàn)TopBar效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • Android項目實戰(zhàn)之仿網(wǎng)易新聞的頁面(RecyclerView )

    Android項目實戰(zhàn)之仿網(wǎng)易新聞的頁面(RecyclerView )

    這篇文章主要介紹了Android項目實戰(zhàn)之仿網(wǎng)易新聞的頁面,ViewPager作為RecyclerView的Header,感興趣的小伙伴們可以參考一下
    2016-01-01
  • so加載Linker跟NameSpace機制詳解

    so加載Linker跟NameSpace機制詳解

    這篇文章主要為大家介紹了so加載Linker跟NameSpace機制詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Android中利用ViewHolder優(yōu)化自定義Adapter的寫法(必看)

    Android中利用ViewHolder優(yōu)化自定義Adapter的寫法(必看)

    下面小編就為大家?guī)硪黄狝ndroid中利用ViewHolder優(yōu)化自定義Adapter的寫法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • 詳解Android布局優(yōu)化

    詳解Android布局優(yōu)化

    本篇文章給大家詳細分析了Android布局優(yōu)化的相關(guān)知識點以及注意事項,對此有需要的朋友可以參考學習下。
    2018-03-03
  • Android入門教程之組件Activity的生命周期詳解

    Android入門教程之組件Activity的生命周期詳解

    Activity作為四大組件之一,出現(xiàn)的頻率相當高,基本上我們在android的各個地方都能看見它的蹤影,因此深入了解Activity,對于開發(fā)高質(zhì)量應(yīng)用程序是很有幫助的。今天我們就來詳細地聊聊Activity的生命周期,以便我們在以后的開發(fā)中能如魚得水
    2021-10-10

最新評論

那曲县| 昌平区| 嘉义县| 鸡西市| 安徽省| 金阳县| 三门县| 兴义市| 二连浩特市| 和龙市| 浦江县| 莎车县| 临洮县| 保靖县| 肇源县| 贡嘎县| 卢氏县| 恭城| 巴彦淖尔市| 枞阳县| 阿拉善盟| 百色市| 龙胜| 辽阳县| 克东县| 阳山县| 塔河县| 乐安县| 招远市| 肇州县| 玉屏| 汾阳市| 山阴县| 弥渡县| 鄂伦春自治旗| 新宁县| 邓州市| 扎鲁特旗| 清涧县| 长宁县| 兖州市|