1. 程式人生 > >Android使用Http協議訪問網絡

Android使用Http協議訪問網絡

cnblogs httpurl 基本使用 最重要的 post 提交 roi manifest 數據

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請求

技術分享

Android使用Http協議訪問網絡