在之前的一篇文章中,我們簡單的介紹了下finalbitmap的使用,這一篇文章將繼續介紹afinal開發框架的使用,這一次的主角是finalhttp。
finalhttp,顧名思義,就是乙個用於實現客戶端與伺服器之間網路通訊的類,這個類主要通過對apache的httpclient開源專案進行封裝,實現了http、https協議下的"get"和"post"兩種請求方式,以及put、delete、download等功能,我們主要介紹使用finalhttp實現與伺服器的 "get"和"post"兩種互動方式 。
首先,finalhttp採用的是執行緒池的方式,提供對請求的非同步載入,預設的是啟動3個固定的執行緒。而且,
tread.setpriority(thread.norm_priority - 1);這句**將這些執行緒的優先順序設定的比普通執行緒低,目前不知道是出於何種考慮。
另外,在finalhttp的建構函式中,進行了很多屬性的初始化操作,包括新增請求頭、設定超時的時間、設定重試次數等,**較多,還請讀者自己去閱讀。
finalhttp對 "get"和"post"進行了非常好的封裝,所以使用起來非常簡單,下面,我們簡要的學習一下finalhttp的使用。
首先,我們可以通過
就可以很方便的獲取到乙個finalhttp的物件。
public void get(view view)我們可以看到,用finalhttp實現get網路請求,我們不需要自己開執行緒,因為框架已經封裝好了,在內部給我們開的執行緒,實現網路的非同步呼叫。其實不光有get方法,還有乙個getsync,這個方法就是沒有進行另起執行緒的請求,所以,如果我們想用getsync這個方法,我們需要自己開啟執行緒,否則在最新版本的主線程中開啟網路服務,會拋異常。//如果請求成功,則呼叫這個**函式,t就是伺服器返回的字串資訊
@override
public void onsuccess(string t)
});}
當然,這只是最簡單的get方法的使用,finalhttp一共提供了get方法的三種過載,**如下
//------------------get 請求-----------------------第二種方式增加了ajaxparams引數,這個引數負責設定get請求的請求值,就是get請求時url位址後面的 &key1=values1 &key2=values2這種形式的請求引數的設定,內部其實就是通過map實現的,所以使用也和map一樣。但是這個ajaxparams比較強大,我們可以往裡面新增很多東西,比如說檔案,流等。public void get( string url, ajaxcallback<? extends object> callback)
public void get( string url, ajaxparams params, ajaxcallback<? extends object> callback)
public void get( string url, header headers, ajaxparams params, ajaxcallback<? extends object> callback)
第三種方式又增加了乙個header陣列,這個陣列用於設定請求的頭資訊,其他與以上兩種相同。
public object getsync( string url)這是getsync的實現,其實和get方法一樣,只不過因為需要自己另開執行緒,所以沒有了**函式這個引數,使用方法相同。public object getsync( string url, ajaxparams params)
public object getsync( string url, header headers, ajaxparams params)
下面我們看一下post方法使用。
//------------------post 請求-----------------------上面的**中,我們可以看出,post與get方法的使用幾乎相同,只不過增加了幾個新的引數而已。
下面是呼叫post方法的乙個簡單的示例
public void post(view view)我們通過 ajaxparams 可以來新增檔案,然後就可以使用post方法,將檔案提交到伺服器,實現檔案的上傳。@override
public void onsuccess(string t)
});
ajaxparams params = new ajaxparams(); params.put("username", "michael yang"); params.put("password", "123456"); params.put("email", "[email protected]"); params.put("profile_picture", new file("/mnt/sdcard/pic.jpg")); // 上傳檔案 params.put("profile_picture2", inputstream); // 上傳資料流 params.put("profile_picture3", new bytearrayinputstream(bytes)); // 提交位元組流
git簡要介紹與使用
git是一種分布式版本控制工具 安裝完成後會生成三個快捷方式 配置 git的配置都是以檔案形式儲存的,具體檢視和位置如下 系統配置檔案 git etc gitconfig 使用者配置檔案都儲存在 userprofile gitconfig 檢視所有配置 git config l 檢視系統配置 git...
crontab 的簡要介紹
1 概述 crontab 用於週期性被執行的指令,該指令從標準裝置輸入指令,並將指令存放在crontab檔案中,供之後讀取和執行。etc crontab 存放被定期執行的指令 etc cron.deny 不能使用crontab的使用者 etc cron.allow 可以使用crontab的使用者 以...
Asp HTTP 簡要介紹
asp http 簡要介紹 特性 1 get post head 請求方法 2 response 回應 頭可見 3 accept 接受 頭可修改 4 超時時間可調整 5 支援proxy 6 自定義客戶 頭 7 自定義posts的內容 型別頭 8 重定向 9 支援驗證內容 10 從url獲得檔案 包括...