Android Http請求架構一:Get 和 Post 請求,androidget

來源:互聯網
上載者:User

Android Http請求架構一:Get 和 Post 請求,androidget

1、HttpUtil

package com.app.android01;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.ClientProtocolException;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.params.CoreConnectionPNames;import org.apache.http.protocol.HTTP;import org.apache.http.util.EntityUtils;public class HttpUtil {    /**     * get請求     * @param httpUrl     * @return     * @throws       */    public String httpGet( String httpUrl ){        String result = "" ;        try {            BufferedReader reader = null;            StringBuffer sbf = new StringBuffer() ;            URL url  = new URL( httpUrl ) ;            HttpURLConnection connection = (HttpURLConnection) url.openConnection() ;            //設定逾時時間 10s            connection.setConnectTimeout(10000);              //佈建要求方式            connection.setRequestMethod( "GET" ) ;            connection.connect();            InputStream is = connection.getInputStream() ;            reader = new BufferedReader(new InputStreamReader( is , "UTF-8" )) ;            String strRead = null ;            while ((strRead = reader.readLine()) != null) {                sbf.append(strRead);                sbf.append("\r\n");            }            reader.close();            result = sbf.toString();        } catch (Exception e) {            e.printStackTrace();        }        return result;    }    /**     * httpPost請求     * @param httpUrl     * @return     */    public String httpPost( String httpUrl ){        String result = "" ;        // 第一步,建立HttpPost對象         HttpPost httpPost = new HttpPost( httpUrl );         // 設定HTTP POST請求參數必須用NameValuePair對象         List<NameValuePair> params = new ArrayList<NameValuePair>();         params.add(new BasicNameValuePair("action", "downloadAndroidApp"));         params.add(new BasicNameValuePair("packageId", "89dcb664-50a7-4bf2-aeed-49c08af6a58a"));         params.add(new BasicNameValuePair("uuid", "test_ok1"));         HttpResponse httpResponse = null;         try {             // 設定httpPost請求參數             httpPost.setEntity(new UrlEncodedFormEntity( params , HTTP.UTF_8 ));             HttpClient httpClient = new DefaultHttpClient() ;            // 請求逾時  10s            httpClient.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 10000 ) ;            // 讀取逾時  10s            httpClient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 10000 );            httpResponse = httpClient.execute( httpPost ) ;             if (httpResponse.getStatusLine().getStatusCode() == 200) {                 // 第三步,使用getEntity方法活得返回結果                 result  = EntityUtils.toString(httpResponse.getEntity());             }         } catch (ClientProtocolException e) {             e.printStackTrace();         } catch (IOException e) {             e.printStackTrace();         }         return result ;    } }

 

2、非同步請求

 1 /** 2      * 非同步請求 3      * @author admin 4      */ 5     class GetData extends AsyncTask< String , Integer , String >{ 6  7         @Override 8         protected String doInBackground(String... params) { 9             HttpUtil httpUtil = new HttpUtil() ;10             String resutl = httpUtil.httpGet( params[0] ) ;11             if( resutl == null ){12                 return "" ;13             }14             return resutl ;15         }16 17         @Override18         protected void onPostExecute(String result) {19             super.onPostExecute(result);20         }21     }

 

 

Android Http請求架構二:xUtils 架構網路請求

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.