Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> [Android-010][HttpClient使用]

[Android-010][HttpClient使用]

編輯:關於Android編程

 

 HttpClient

發送get請求

創建一個客戶端對象
    HttpClient client = new DefaultHttpClient();
創建一個get請求對象
    HttpGet hg = new HttpGet(path);
發送get請求,建立連接,返回響應頭對象
    HttpResponse hr = hc.execute(hg);
獲取狀態行對象,獲取狀態碼,如果為200則說明請求成功
        if(hr.getStatusLine().getStatusCode() == 200){
            //拿到服務器返回的輸入流
            InputStream is = hr.getEntity().getContent();
            String text = Utils.getTextFromStream(is);
        }

發送post請求

        //創建一個客戶端對象
        HttpClient client = new DefaultHttpClient();
        //創建一個post請求對象
        HttpPost hp = new HttpPost(path);
往post對象裡放入要提交給服務器的數據
        //要提交的數據以鍵值對的形式存在BasicNameValuePair對象中
        List parameters = new ArrayList();
        BasicNameValuePair bnvp = new BasicNameValuePair(name, name);
        BasicNameValuePair bnvp2 = new BasicNameValuePair(pass, pass);
        parameters.add(bnvp);
        parameters.add(bnvp2);
        //創建實體對象,指定進行URL編碼的碼表
        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(parameters, utf-8);
        //為post請求設置實體
        hp.setEntity(entity);

異步HttpClient框架

 

發送get請求

        //創建異步的httpclient對象
        AsyncHttpClient ahc = new AsyncHttpClient();
        //發送get請求
        ahc.get(path, new MyHandler());
注意AsyncHttpResponseHandler兩個方法的調用時機
        class MyHandler extends AsyncHttpResponseHandler{

            //http請求成功,返回碼為200,系統回調此方法
            @Override
            public void onSuccess(int statusCode, Header[] headers,
                    //responseBody的內容就是服務器返回的數據
                    byte[] responseBody) {
                Toast.makeText(MainActivity.this, new String(responseBody), 0).show();

            }

            //http請求失敗,返回碼不為200,系統回調此方法
            @Override
            public void onFailure(int statusCode, Header[] headers,
                    byte[] responseBody, Throwable error) {
                Toast.makeText(MainActivity.this, 返回碼不為200, 0).show();

            }

        }

發送post請求

使用RequestParams對象封裝要攜帶的數據
        //創建異步httpclient對象
        AsyncHttpClient ahc = new AsyncHttpClient();
        //創建RequestParams封裝要攜帶的數據
        RequestParams rp = new RequestParams();
        rp.add(name, name);
        rp.add(pass, pass);
        //發送post請求
        ahc.post(path, rp, new MyHandler());

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved