天天看點

Android 經典筆記之八:網絡請求資料基礎介紹

關于網絡請求資料總結

目錄介紹

1.Http請求與響應

1.1 Http請求包的結構

1.2 HTTP響應包結構

2.Http請求方式

3.Get和Post的比較

3.1 get請求

3.2 post請求

3.3 其他差別

3.4 網絡心聲

4.Http響應方式

5.同步和異步

6.Http緩存機制講解

6.1 request請求字段含義

6.2 response響應字段含義

6.3 緩存機制邏輯圖

0.本人寫的綜合案例

<a href="https://github.com/yangchong211/LifeHelper">案例</a>

<a href="https://github.com/yangchong211/LifeHelper/blob/master/README.md">說明及截圖</a>

子產品:新聞,音樂,視訊,圖檔,唐詩宋詞,快遞,天氣,記事本,閱讀器等等

接口:七牛,阿裡雲,天行,幹貨集中營,極速資料,追書神器等等

一次請求就是向目标伺服器發送一串文本。什麼樣的文本?有下面結構的文本。

1.1 HTTP請求包結構

Android 經典筆記之八:網絡請求資料基礎介紹

例子:

請求了就會收到響應包(如果對面存在HTTP伺服器)

1.2 HTTP響應包結構

Android 經典筆記之八:網絡請求資料基礎介紹
Android 經典筆記之八:網絡請求資料基礎介紹

3.Get和Post的比較差別

在url中填寫參數

甚至使用路由

參數是經過編碼放在請求體中的。 編碼包括:

x-www-form-urlencoded`的編碼方式是這樣:

form-data`的編碼方式是這樣:

因為url是存在于請求行中的。 是以Get與Post差別本質就是參數是放在請求行中還是放在請求體中。

Get是明文,Post隐藏

移動端不是浏覽器,不用https全都是明文。 Get傳遞資料上限XXX

胡說。有限制的是浏覽器中的url長度,不是Http協定,移動端請求無影響。Http伺服器部分有限制的設定一下即可。

請求是鍵值對,但傳回資料我們常用Json。

對于記憶體中的結構資料,肯定要用資料描述語言将對象序列化成文本,再用Http傳遞,接收端并從文本還原成結構資料。

對象(伺服器)&lt;--&gt;文本(Http傳輸)&lt;--&gt;對象(移動端) 。

5.同步和異步的比較

這2個概念僅存在于多線程程式設計中。

Android中預設隻有一個主線程,也叫UI線程

因為View繪制隻能在這個線程内進行。是以如果你阻塞了(某些操作使這個線程在此處運作了N秒)這個線程,這期間View繪制将不能進行,UI就會卡。是以要極力避免在UI線程進行耗時操作。網絡請求是一個典型耗時操作。

5.1同步寫的方式:

這就是同步方式。直接耗時操作阻塞線程直到資料接收完畢然後傳回。Android不允許的。會卡死

5.2異步寫的方式:

在子線程進行耗時操作,完成後通過Handler将更新UI的操作發送到主線程執行。這就叫異步。

抽取寫法

記住: 每次都new Thread,new Handler消耗過大

緩存對于移動端是非常重要的存在。

減少請求次數,減小伺服器壓力.

本地資料讀取速度更快,讓頁面不會空白幾百毫秒。

在無網絡的情況下提供資料。

緩存一般由伺服器控制(通過某些方式可以本地控制緩存,比如向過濾器添加緩存控制資訊)。通過在請求頭添加下面幾個字端:

Android 經典筆記之八:網絡請求資料基礎介紹
Android 經典筆記之八:網絡請求資料基礎介紹
Android 經典筆記之八:網絡請求資料基礎介紹

其他說明

脈脈:yc930211

郵箱:[email protected]

繼續閱讀