Android之HttpClient 和HttpResponse 小結
三步曲:
1.建立HttpGet或者HttpPost物件,將要請求的URL物件構造方法傳入HttpGet、HttpPost物件
2.通過HttpClent介面的實現類DefaultClent.的excute(HttpUriRequest request)而我們已經知道HttpGet和HttpPost類都實現了 HttpUriRequest介面,所以這裡面,我們可以將第1步建立好的HttpGet或者HttpPost物件傳入進來。來得到HttpResponse物件
3.通過HttpResponse取到返回的一些資訊,再做提取
知識點:
1. HttpParams : 儲存Http請求設定的引數物件
2. HttpConnectionParams :提供對Http連線引數進行設定的方法,比如 連線超時時間 等。
3.HttpClient :發起Http連線請求的物件,
4.HttpResponse :Http 請求返回的響應
HttpClient介面
實現類:DefaultHttpClient這也是常用的一個用於實現HttpClient介面的子類, HttpClietnt中定義的常用抽象方法
1.public abstract HttpResponse execute (HttpUriRequest request) :
通過HttpUriRequest物件執行返回一個HttpResponse物件
2.public abstract HttpResponse execute (HttpUriRequest request, HttpContext context) :
通過HttpUriRequest物件和HttpContext對 象執行返回一個HttpResponse物件
HttpResponse介面
HttpResponse接口裡定義了一系列的set、get方法
1.public abstract HttpEntity getEntity () :
得到一個HttpEntity物件
2.public abstract StatusLine getStatusLine () :
得到一個StatusLine(也就是HTTP協議中的狀態行我們知道HTPP狀態行由三部分組成:HTTP協議版本,伺服器發回的響 應狀態
3. public abstract Locale getLocale () :
得到Locale物件….相應的set方法
StatusLine介面
StatusLine介面的常用方法。也可以通過其實現的子類BasicStatusLine類裡檢視
1.public abstract ProtocolVersion getProtocolVersion () :
得到一個ProtolVersion物件它是一個HTTP版本的封裝類,在這個類裡定義了一系列的方法我們可以通過它的getProtocol方法取得協議名稱,getMinor得到HTPP協議的版本
2.public abstract String getReasonPhrase () :
狀態碼的文字描述
3.public abstract int getStatusCode () :
得到響應狀態碼
HttpEntity是一個介面
1.public abstract InputStream getContent () :
得到一個輸入流物件,我們可以用這個流來操作文件(例如儲存檔案到SD卡)
2.public abstract Header getContentType () :
得到Content-Type資訊頭
3.public abstract Header getContentEncoding () :
得到Content-Encoding資訊頭
我們可以通過EntityUtils類,它是一個final類,一個專門針對於處理HttpEntity的幫助類
常用方法
EntityUtils類
EntityUtils類的常用方法
1.public static String getContentCharSet (HttpEntity entity) :
設定HttpEntity物件的ContentCharset
2.public static byte[] toByteArray (HttpEntity entity) :
將HttpClient轉換成一個位元組陣列
3.public static String toString (HttpEntity entity, String defaultCharset) :
通過指定的編碼方式取得HttpEntity裡字串內容
4.public static String toString (HttpEntity entity) :
取得HttpEntity裡字串內容
NameValuePair
NameValuePair介面是一個簡單的封閉的鍵值對,只提供了一個getName()和一個getValue方法。主要用到的實現類BasicNameVaulePair HttpGet類
HttpGet它實現了HttpRequest、HttpUriRequest介面 構造方法
1.public HttpGet () : 無引數構造方法用以例項化物件
2.public HttpGet (URI uri) :通過URI物件構造HttpGet物件
3.public HttpGet (String uri) :通過指定的uri字串地址構造例項化HttpGet物件
HttpPost類
同樣它也實現了HttpRequest、HttpUriRequest介面等一系列介面 構造方法
1.public HttpPost () :無引數構造方法用以例項化物件
2.public HttpPost (URI uri) :通過URI物件構造HttpPost物件
3.public HttpPost (String uri) :通過指定的uri字串地址構造例項化HttpPost物件