Android詳解之NoHttp最基本使用(無封裝)
NoHttp是專門做Android網(wǎng)絡(luò)請求與下載的框架,NoHttp基本使用方法如下
本文demo源碼下載地址: http://xiazai.jb51.net/201609/yuanma/AndroidNoHttp(jb51.net).rar
本文的例子來自上面的demo中的OriginalActivity中。
代碼
對于新手, 看別人封裝好的代碼允許要稍微吃力一點,尤其是一個框架,所以我們先看NoHttp最原始的使用方法:
public class OriginalActivity extends BaseActivity implements View.OnClickListener {
/**
* 用來標(biāo)志請求的what, 類似handler的what一樣,這里用來區(qū)分請求
*/
private static final int NOHTTP_WHAT_TEST = 0x001;
/**
* 請求的時候等待框
*/
private WaitDialog mWaitDialog;
/**
* 請求隊列
*/
private RequestQueue requestQueue;
@Override
protected void onActivityCreate(Bundle savedInstanceState) {
setTitle(Application.getInstance().nohttpTitleList[0]);
setContentView(R.layout.activity_original);
// 按鈕點擊監(jiān)聽
findView(R.id.btn_start).setOnClickListener(this);
mWaitDialog = new WaitDialog(this);
// 創(chuàng)建請求隊列, 默認(rèn)并發(fā)3個請求, 傳入數(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è)置一個tag, 在請求完(失敗/成功)時原封不動返回; 多數(shù)情況下不需要
// request.setTag(object);
/*
* what: 當(dāng)多個請求同時使用同一個OnResponseListener時用來區(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();// 請求花費的時間
}
}
@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時停止所有請求
requestQueue.stop();// 退出APP時停止隊列
}
}
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- 六款值得推薦的android(安卓)開源框架簡介
- Android Retrofit 2.0框架上傳圖片解決方案
- Android使用Fragment打造萬能頁面切換框架
- 淺析KJFrameForAndroid框架如何高效加載Bitmap
- android上的一個網(wǎng)絡(luò)接口和圖片緩存框架enif簡析
- 簡略分析Android的Retrofit應(yīng)用開發(fā)框架源碼
- 在Android中動態(tài)添加Panel框架的實現(xiàn)代碼
- Android中XUtils3框架使用方法詳解(一)
- 舉例講解Android應(yīng)用開發(fā)中OTTO框架的基本使用
- Android開發(fā)框架之自定義ZXing二維碼掃描界面并解決取景框拉伸問題
相關(guān)文章
Android自定義View實現(xiàn)游戲搖桿鍵盤的方法示例
Android進(jìn)階過程中有一個繞不開的話題——自定義View。最近在做項目中又遇到了,所以下面這篇文章主要給大家介紹了利用Android自定義View實現(xiàn)游戲搖桿鍵盤的相關(guān)資料,操作方式類似王者榮耀的搖桿操作,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面來一起看看吧。2017-07-07
Android實現(xiàn)復(fù)制Assets文件到SD卡
這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)復(fù)制Assets文件到SD卡,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-12-12
Android 使用Vitamio打造自己的萬能播放器(1)——準(zhǔn)備
本文主要介紹Android Vitamio,在Android開發(fā)視頻播放器的時候,大家經(jīng)常會遇到系統(tǒng)版本和不同的Android手機(jī)不同導(dǎo)致開發(fā)的軟件不能完美適用,這里給大家介紹個播放器插件可以適應(yīng)所有Android設(shè)備2016-07-07
Android Viewpager實現(xiàn)無限循環(huán)輪播圖
這篇文章主要為大家詳細(xì)介紹了Android Viewpager實現(xiàn)無限循環(huán)輪播圖,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-11-11

