Android详解之NoHttp最基本使用(无封装)

 更新时间:2016年09月12日 11:16:06   作者:yanzhenjie1003  
这篇文章主要介绍了Android详解之NoHttp最基本使用,无封装,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

NoHttp是专门做Android网络请求与下载的框架,NoHttp基本使用方法如下

本文demo源码下载地址: http://xiazai.jb51.net/201609/yuanma/AndroidNoHttp(jb51.net).rar

本文的例子来自上面的demo中的OriginalActivity中。

代码

对于新手, 看别人封装好的代码允许要稍微吃力一点,尤其是一个框架,所以我们先看NoHttp最原始的使用方法:

public class OriginalActivity extends BaseActivity implements View.OnClickListener {

 /**
  * 用来标志请求的what, 类似handler的what一样,这里用来区分请求
  */
 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);
  // 按钮点击监听
  findView(R.id.btn_start).setOnClickListener(this);

  mWaitDialog = new WaitDialog(this);

  // 创建请求队列, 默认并发3个请求, 传入数字改变并发数量: NoHttp.newRequestQueue(1);
  requestQueue = NoHttp.newRequestQueue();
 }

 @Override
 public void onClick(View v) {
  // 创建请求对象
  Request<String> request = NoHttp.createStringRequest(url, RequestMethod.POST);

  // 添加请求参数
  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");

  // 设置一个tag, 在请求完(失败/成功)时原封不动返回; 多数情况下不需要
  // request.setTag(object);

  /*
   * what: 当多个请求同时使用同一个OnResponseListener时用来区分请求, 类似handler的what一样
   * request: 请求对象
   * onResponseListener 回调对象,接受请求结果
   */
  requestQueue.add(NOHTTP_WHAT_TEST, request, onResponseListener);
 }

 /**
  * 回调对象,接受请求结果
  */
 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();// 响应结果
    // 响应头
    Headers headers = response.getHeaders();
    headers.getResponseCode();// 响应码
    response.getNetworkMillis();// 请求花费的时间
   }
  }

  @Override
  public void onStart(int what) {
   // 请求开始,显示dialog
   mWaitDialog.show();
  }

  @Override
  public void onFinish(int what) {
   // 请求结束,关闭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时停止队列
 }

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Android实现类似微信的文本输入框 效果

    Android实现类似微信的文本输入框 效果

    本文给大家介绍一下微信的文本输入框是如何实现的,其实那只是个普通的文本框设了一个特殊的背景而已。具体微信怎么实现的,大家可以反编译下,这里介绍下如何实现这个背景
    2017-05-05
  • Android popupWindow弹出窗体实现方法分析

    Android popupWindow弹出窗体实现方法分析

    这篇文章主要介绍了Android popupWindow弹出窗体实现方法,结合具体实例形式分析了Android弹出窗体的布局及popupwindow属性设置、事件监听相关操作技巧,需要的朋友可以参考下
    2017-07-07
  • Android协程代替Handler使用示例详解

    Android协程代替Handler使用示例详解

    这篇文章主要为大家介绍了Android 协程代替Handler使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2024-01-01
  • 百度地图实现小车规划路线后平滑移动功能

    百度地图实现小车规划路线后平滑移动功能

    这篇文章主要介绍了百度地图实现小车规划路线后平滑移动功能,本文是小编写的一个demo,通过效果图展示的非常直白,需要的朋友可以参考下
    2020-01-01
  • android实现下拉菜单三级联动

    android实现下拉菜单三级联动

    这篇文章主要为大家详细介绍了android实现下拉菜单三级联动,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • android中okhttp实现断点上传示例

    android中okhttp实现断点上传示例

    本篇文章主要介绍了android中okhttp实现断点上传示例,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Android之scrollview滑动使标题栏渐变背景色的实例代码

    Android之scrollview滑动使标题栏渐变背景色的实例代码

    这篇文章主要介绍了Android之scrollview滑动使标题栏渐变背景色的实例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-05-05
  • Android使用HorizontalScrollView实现水平滚动

    Android使用HorizontalScrollView实现水平滚动

    这篇文章主要为大家详细介绍了Android使用HorizontalScrollView实现水平滚动,并点击有相应的反应效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • android 更改TextView中任意位置字体大小和颜色的方法

    android 更改TextView中任意位置字体大小和颜色的方法

    下面小编就为大家分享一篇android 更改TextView中任意位置字体大小和颜色的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-01-01
  • Android屏蔽EditText软键盘的方法

    Android屏蔽EditText软键盘的方法

    这篇文章主要介绍了Android屏蔽EditText软键盘的方法,涉及Android屏蔽EditText软键盘及恢复软键盘的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-07-07

最新评论