Android使用Http協議訪問網絡


      Http協議工作原理大致可以理解為:客戶端向服務器發出一條HTTP請求,服務器收到請求后返回一些數據給客戶端,客戶端對收到數據解析。

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

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

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

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

 

  • Get請求

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

  • Post請求

 

 當然,最重要的一點,在訪問網絡之前,需要申明網絡權限,修改AndroidManifest.xml中的代碼,

之后運行代碼,就可以得到相應數據。

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

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

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

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

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

  • get請求

  • post請求

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM