欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android詳解之NoHttp最基本使用(無封裝)

 更新時(shí)間:2016年09月12日 11:16:06   作者:yanzhenjie1003  
這篇文章主要介紹了Android詳解之NoHttp最基本使用,無封裝,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論