Android詳解之NoHttp最基本使用(無封裝)
NoHttp是專門做Android網(wǎng)絡(luò)請求與下載的框架,NoHttp基本使用方法如下
本文demo源碼下載地址: http://xiazai.jb51.net/201609/yuanma/AndroidNoHttp(jb51.net).rar
本文的例子來自上面的demo中的OriginalActivity中。
代碼
對于新手, 看別人封裝好的代碼允許要稍微吃力一點(diǎn),尤其是一個(gè)框架,所以我們先看NoHttp最原始的使用方法:
public class OriginalActivity extends BaseActivity implements View.OnClickListener { /** * 用來標(biāo)志請求的what, 類似handler的what一樣,這里用來區(qū)分請求 */ private static final int NOHTTP_WHAT_TEST = 0x001; /** * 請求的時(shí)候等待框 */ private WaitDialog mWaitDialog; /** * 請求隊(duì)列 */ private RequestQueue requestQueue; @Override protected void onActivityCreate(Bundle savedInstanceState) { setTitle(Application.getInstance().nohttpTitleList[0]); setContentView(R.layout.activity_original); // 按鈕點(diǎn)擊監(jiān)聽 findView(R.id.btn_start).setOnClickListener(this); mWaitDialog = new WaitDialog(this); // 創(chuàng)建請求隊(duì)列, 默認(rèn)并發(fā)3個(gè)請求, 傳入數(shù)字改變并發(fā)數(shù)量: NoHttp.newRequestQueue(1); requestQueue = NoHttp.newRequestQueue(); } @Override public void onClick(View v) { // 創(chuàng)建請求對象 Request<String> request = NoHttp.createStringRequest(url, RequestMethod.POST); // 添加請求參數(shù) request.add("userName", "yolanda"); request.add("userPass", 1); request.add("userAge", 1.25); // 上傳文件 request.add("userHead", new FileBinary(new File(path))); // 添加請求頭 request.addHeader("Author", "nohttp_sample"); // 設(shè)置一個(gè)tag, 在請求完(失敗/成功)時(shí)原封不動(dòng)返回; 多數(shù)情況下不需要 // request.setTag(object); /* * what: 當(dāng)多個(gè)請求同時(shí)使用同一個(gè)OnResponseListener時(shí)用來區(qū)分請求, 類似handler的what一樣 * request: 請求對象 * onResponseListener 回調(diào)對象,接受請求結(jié)果 */ requestQueue.add(NOHTTP_WHAT_TEST, request, onResponseListener); } /** * 回調(diào)對象,接受請求結(jié)果 */ private OnResponseListener<String> onResponseListener = new OnResponseListener<String>() { @SuppressWarnings("unused") @Override public void onSucceed(int what, Response<String> response) { if (what == NOHTTP_WHAT_TEST) {// 判斷what是否是剛才指定的請求 // 請求成功 String result = response.get();// 響應(yīng)結(jié)果 // 響應(yīng)頭 Headers headers = response.getHeaders(); headers.getResponseCode();// 響應(yīng)碼 response.getNetworkMillis();// 請求花費(fèi)的時(shí)間 } } @Override public void onStart(int what) { // 請求開始,顯示dialog mWaitDialog.show(); } @Override public void onFinish(int what) { // 請求結(jié)束,關(guān)閉dialog mWaitDialog.dismiss(); } @Override public void onFailed(int what, String url, Object tag, CharSequence error, int resCode, long ms) { // 請求失敗 ... } }; @Override protected void onDestroy() { super.onDestroy(); requestQueue.cancelAll();// 退出APP時(shí)停止所有請求 requestQueue.stop();// 退出APP時(shí)停止隊(duì)列 } }
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 六款值得推薦的android(安卓)開源框架簡介
- Android Retrofit 2.0框架上傳圖片解決方案
- Android使用Fragment打造萬能頁面切換框架
- 淺析KJFrameForAndroid框架如何高效加載Bitmap
- android上的一個(gè)網(wǎng)絡(luò)接口和圖片緩存框架enif簡析
- 簡略分析Android的Retrofit應(yīng)用開發(fā)框架源碼
- 在Android中動(dòng)態(tài)添加Panel框架的實(shí)現(xiàn)代碼
- Android中XUtils3框架使用方法詳解(一)
- 舉例講解Android應(yīng)用開發(fā)中OTTO框架的基本使用
- Android開發(fā)框架之自定義ZXing二維碼掃描界面并解決取景框拉伸問題
相關(guān)文章
Android開發(fā)基礎(chǔ)實(shí)現(xiàn)音頻文件的播放詳解
這篇文章主要為大家介紹了Android開發(fā)基礎(chǔ)實(shí)現(xiàn)音頻文件的播放詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02Android自定義View實(shí)現(xiàn)漸變色儀表盤
這篇文章主要為大家詳細(xì)介紹了Android自定義View實(shí)現(xiàn)漸變色儀表盤,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11Android 檢查更新、下載、安裝功能的實(shí)現(xiàn)
這篇文章主要介紹了Android 檢查更新、下載、安裝功能的實(shí)現(xiàn)的相關(guān)資料,這里附有實(shí)例代碼,具有一定的參考價(jià)值,需要的朋友可以參考下2017-01-01Android開發(fā)藝術(shù)探索學(xué)習(xí)筆記(七)
這篇文章主要介紹了Android開發(fā)藝術(shù)探索學(xué)習(xí)筆記(七)的相關(guān)資料,需要的朋友可以參考下2016-01-01android實(shí)現(xiàn)多線程下載文件(支持暫停、取消、斷點(diǎn)續(xù)傳)
本篇文章主要介紹了androids實(shí)現(xiàn)多線程下載文件,主要包括暫停、取消、斷點(diǎn)續(xù)傳等功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-02-02Android 仿微信自定義數(shù)字鍵盤的實(shí)現(xiàn)代碼
本篇文章主要介紹了Android 仿微信自定義數(shù)字鍵盤的實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,有興趣的可以了解一下2017-07-07Android 正則表達(dá)式驗(yàn)證手機(jī)號(hào)、姓名(包含少數(shù)民族)、身份證號(hào)
本篇文章主要介紹了Android 正則表達(dá)式驗(yàn)證手機(jī)號(hào)、姓名(包含少數(shù)民族)、身份證號(hào)的相關(guān)知識(shí)。具有很好的參考價(jià)值。下面跟著小編一起來看下吧2017-04-04android實(shí)現(xiàn)ViewPager的Indicator的實(shí)例代碼
本篇文章主要介紹了android實(shí)現(xiàn)ViewPager的Indicator的實(shí)例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02