Android详解之NoHttp最基本使用(无封装)
作者:yanzhenjie1003 发布时间:2022-09-28 17:11:51
标签: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时停止队列
}
}
来源:http://blog.csdn.net/yanzhenjie1003/article/details/50679905
0
投稿
猜你喜欢
- 本文实例为大家分享了Unity虚拟摇杆的简单实现代码,供大家参考,具体内容如下简单的Unity虚拟摇杆实现,有详细注释。Game界面Insp
- Android 界面刷新 Android提供了Invalidate方法实现界面刷新,但是Invalidate不能直接在线程中调用,
- Java 如何将String转化为Int在 Java 中要将 String 类型转化为 int 类型时,需要使用 Integer 类中的 p
- 前言在上一章节Spring和Mybatis整合的原理详解中有写到Spring和MyBatis整合时用到的Bean扫描是Spring本身提供的
- 下面一段简单的代码给大家分享java 获取对象中为null的字段,具体代码如下所述:private static String[] getN
- ADO.NET数据访问技术的一个突出特点就是支持离线访问,而实现这种离线访问的技术核心急速DataSet对象,该对象通过数据驻留在内存来实现
- 众所周知springboot项目,使用springboot插件打包的话,会打包成一个包含依赖的可执行jar,非常方便。只要有java运行环境
- 今天练习C#的一个功能,就是将一个字符串时行翻转显示如:string str = "Insus.NET";翻转成为:st
- 1. 运行环境 Enviroment当 MyBatis 与不同的应用结合时,需要不同的事务管理机制。与 Spring 结合时,由 Sprin
- 一、RatingBar简单介绍RatingBar是基于SeekBar(拖动条)和ProgressBar(状态条)的扩展,用星形来显示等级评定
- 大家好,今天尝试用swing技术写一个贪吃蛇大作战小游戏,供大家参考。 效果展示效果展示一、游戏界面二、得分情况&nb
- IoC——Inversion of Control,控制反转在Java开发中,IoC意味着将你设计好的类交给系统去控制,而不是在你的类内部控
- 本文实例为大家分享了Android实现闪屏页效果的具体代码,供大家参考,具体内容如下1.效果图2.闪屏页逻辑及布局2.1 activity_
- 最近在做一个项,有一个收藏的功能。后来看到了一点资讯的收藏动画,感觉不错,所有自己就实现了一下。这是效果:附上完整的代码,其中Animati
- 前言上篇Java Mybatis数据源之工厂模式文章中我们介绍了Mybatis的数据源模块的DataSource接口和它对应的实现
- 目录项目地址示例图片项目结构机器人平滑碰撞其它特性使用打包文件项目文件声明主要代码项目地址https://github.com/SCNU-A
- 前言在我们的项目中,通常会把数据存储到关系型数据库中,比如Oracle,SQL Server,Mysql等,但是关系型数据库对于并发的支持并
- 1. 抽象类关键字:abstract类:用来描述一类具体的事物抽象类:抽象的、模糊的、不具体的类在Java的普通类中是不允许多继承的,原因是
- 基于servlet+jsp+jdbc的后台管理系统,包含5个模块:汽车账户部管理、租车账户部管理、汽车信息管理表、租车记录表、租车租聘表。功
- 在使用EL时,其实EL是先看标识符是否是其隐式对象之一,如果不是,才从四个域(page、request、session、applicatio