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

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
, 框架
NoHttp
android nohttp封装、java封装继承多态详解、mp4封装格式详解、kxmovie 封装详解、ps封装格式详解,以便于您获取更多的相关知识。

时间: 2025-01-24 18:17:30

Android详解之NoHttp最基本使用(无封装)_Android的相关文章

Android开发之浏览器用法实例详解(调用uc,opera,qq浏览器访问网页)_Android

本文实例讲述了Android开发之浏览器用法.分享给大家供大家参考,具体如下: 一.启动android默认浏览器 Intent intent = new Intent(); intent.setAction("android.intent.action.VIEW"); Uri content_url = Uri.parse("http://www.jb51.net"); intent.setData(content_url); startActivity(inten

Android RecyclerView详解之实现 ListView GridView瀑布流效果_Android

 什么是RecyclerView RecyclerView 是Google推出的最新的 替代ListView.GridView的组件,RecyclerView是用来显示大量数据的容器,并通过有限数量的子View,来提高滚动时的性能. 与ListView不同,RecyclerView 不再负责布局,而是专注于布局复用.布局主要通过 LayoutManager来管理,目前提供了3种常用的布局管理: LinearLayoutManager 线性布局管理器 (ListView效果) GridLayout

Android 详解第三方介质交互之NFC,并且实现读你的交通卡,酒店房卡,学生证!

转载请注明出处王亟亟的大牛之路 最近一段时间都在自己学习啊,看看东西敲敲代码什么的,熟悉业务逻辑啊之类的,因为刚跳槽,外加又不怎么忙,所以就还算时间蛮多的,自己利用呗,昨天被老大问有没有做过NFC..脑子一愣,并没有然后说,OH好的,我看一下.(据说是之后改的一些东西里面会运用到NFC) 废话不多开始正题: 写内容之前先介绍下NFC(如果想直接看代码的,请忽略这部分) NFC是一个短范围无线技术集合,通常需要4厘米或更短的距离才能初始化连接.(你把卡什么的往手机背部贴实了就能很快的识别) NDE

android 详解 SharedPreferences

SharedPreferences存储类效率分析 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长整形.Int整形.String字符串型的保存,它是什么样的处理方式呢?  SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种

Android动画之渐变动画(Tween Animation)详解 (渐变、缩放、位移、旋转)_Android

本文实例讲述了Android动画之渐变动画(Tween Animation).分享给大家供大家参考,具体如下: Android 平台提供了两类动画. 一类是Tween动画,就是对场景里的对象不断的进行图像变化来产生动画效果(旋转.平移.放缩和渐变). 第二类就是 Frame动画,即顺序的播放事先做好的图像,与gif图片原理类似. 下面就讲一下Tweene Animations. 主要类: Animation                  动画 AlphaAnimation          

Android详解之ListView优化

去除ListView滑到顶部和底部时边缘的黑色阴影: android:fadingEdge="none"  ---------------------------------------------------- 去除拖动时默认的黑色背景: android:cacheColorHint="#00000000"   或 listView.setCacheColorHint(Color.TRANSPARENT); ----------------------------

联通董秘详解百亿股解禁:无任何意向减持股票

5月19日下午17:40消息,针对中国联通107.5亿限售股将获得上市流通权,中国联通A股上市公司董秘张保英称,联通集团目前还处于增持期,有意继续增持公司股票,目前也没有任何意愿减持所持有公司的股票. 由于联通解禁股票数量巨大,成为5月份解禁数量最大的A股股票,将对市场造成很大冲击.对于此次解禁,中国联通董事会秘书张保英介绍说,至5月19日,联通集团持有的公司107.5亿股票解禁转为流通股,这是按照股改性质由限售股转为流通股.同时也是股改的安排.按照证监会关于股改的相关规定,完成股改后大股东(即

详解js中class的多种函数封装方法_javascript技巧

本文实例讲解了js中class的多种函数封装方法,分享给大家供大家参考,具体内容如下 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>关于class的多种函数封装</title> <style> body{ margin: 0; } li{ height: 20px; } </style

Kotlin 封装万能SharedPreferences存取任何类型详解

Kotlin 封装万能SharedPreferences存取任何类型详解 /** * author: smart * time: 2016/10/26 * 封装好SharedPreferences 并使用 序列化和反序列化来存储数据 * 注意要在全局环境使用 */ class Preference<T>(val context : Context,val name : String,val default : T) : ReadWriteProperty<Any?,T>{ val