Nohttp类似于volley的升级版,其使用步骤基本一致
特点:
1.多种请求方式并发调用,支持get,post,put等网络解析方式
2.文件上传,文件下载,下载进度回调,错误回调,支持暂停继续下载,支持取消大文件上传,不会发生OOM,支持File,InputStream,ByteArray,Bitmap,实现NOhttp的
Binary接口,理论上任何东西都可以穿,
3.支持取消某个请求,取消指定多个请求,取消所有请求
4.支持自定义Request,利用NOhttp泛型可以解析成你想要的任何数据格式(String,Json,JavaBeann,XML,Bitmap)
5.异步请求,拿到结果直接更新UI,支持同步请求.
特点:
1.多种请求方式并发调用,支持get,post,put等网络解析方式
2.文件上传,文件下载,下载进度回调,错误回调,支持暂停继续下载,支持取消大文件上传,不会发生OOM,支持File,InputStream,ByteArray,Bitmap,实现NOhttp的
Binary接口,理论上任何东西都可以穿,
3.支持取消某个请求,取消指定多个请求,取消所有请求
4.支持自定义Request,利用NOhttp泛型可以解析成你想要的任何数据格式(String,Json,JavaBeann,XML,Bitmap)
5.异步请求,拿到结果直接更新UI,支持同步请求.
使用NOhttp的步骤:
0. 关联NOhttp
在build.gradle文件下dependencies里添加compile 'com.yolanda.nohttp:nohttp:1.1.0'
1. 初始化NOhttp.
自定义Application,对NoHttp进行初始化,
public class MyApplication extends Application {
@Override
public void onCreate() {
//NoHttp默认初始化
NoHttp.initialize(this);
super.onCreate();
}
}
在清单文件里注册自定义的Application.
2. 在清单文件里添加权限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
3. 创建一个队列,使用NOhttp的静态方法,创建消息请求,指定访问的网址,及请求网络的方式
String url="http://www.baidu.com";
//创建一个队列
RequestQueue queue = NoHttp.newRequestQueue();
//创建消息请求, 参数1 String字符串,传网址 参数2:指定请求的方式
//提示:(你们请求的数据是什么类型,就调用对应的方法,主要是中间的单词有区别)
Request<String> request = NoHttp.createStringRequest(url, RequestMethod.GET);
4. 利用队列去添加消息请求
queue.add(0, request, new OnResponseListener<String>() {
//请求开始时,回调的方法,一般做进度条对话框的加载
@Override
public void onStart(int what) {
}
//请求成功时,回调的方法,代码直接运行到主线程
@Override
public void onSucceed(int what, Response<String> response) {
}
//网络请求失败的回调,代码直接运行到主线程
@Override
public void onFailed(int what, Response<String> response) {
}
//网络请求成功,一般隐藏进度条对话框
@Override
public void onFinish(int what) {
}
});
提示:如果使用post请求,注意进行数据的add添加.上传数据