Android使用Http協議訪問網絡

      Http協議工做原理大體能夠理解爲:客戶端向服務器發出一條HTTP請求,服務器收到請求後返回一些數據給客戶端,客戶端對收到數據解析。android

在Android6.0之前,Android上發送Http請求主要有兩種方式:HttpURLConnection和HttpClient。其中HttpClient存在過多的API且難擴展,因而在Android6.0系統中,HttpClient被徹底移除,如需使用,需導入相應文件。這裏介紹最近我最近學習的HttpURLConnection的基本使用方法,而後接下來介紹一種當下比較流行的網絡通訊庫Okhttp。 git

      Android獲取網絡數據主要有get和post方法,get表示從服務器獲取數據,Post表示提交數據給服務器。github

   1.首先新建一個HttpURLConnectionDemo文件,添加兩個按鈕,分別表示使用get方法與post方法。服務器

2.爲按鈕添加點擊事件,分別執行doGet與doPost方法。網絡

 

  • Get請求

 注意,這裏的方法必須在子線程中執行,不然運行時會報android.os.NetworkOnMainThreadException錯誤,表示不能在主線程中執行網絡請求。異步

  • Post請求

 

 固然,最重要的一點,在訪問網絡以前,須要申明網絡權限,修改AndroidManifest.xml中的代碼,post

以後運行代碼,就能夠獲得相應數據。學習

      能夠看出使用HttpURLConnection比較繁瑣,咱們可使用當前流行的OkHttp網絡通訊庫代替它。Okhttp是由大名鼎鼎的Square公司開發,簡單易用。初學者能夠經過HttpURLConnection瞭解其網絡訪問流程,但在實際項目開發過程當中,使用比較多的是Okhttp,Okhttp的項目主頁地址是:http://github.com/square/okhttp.spa

    1. 在使用Okhttp以前,須要在項目中添加依賴項,經過訪問Okhttp項目主頁地址查找當前Okhttp的最新版本號。線程

2.而後點擊右上角的,完成同步。新建項目,這裏在前面HttpURLConnextionDemo基礎上修改。

3.在HttpURLConnextionDemo基礎上申明一個OkHttpClient,

4.分別使用兩種請求獲取數據,其中get請求使用同步請求方法,post請求使用的是異步請求回調的方法。

  • get請求

  • post請求

相關文章
相關標籤/搜索