NoHttp发起请求
studio中的gradle中引入(目前最新版本 ,更新至1.0.6)
compile 'com.yolanda.nohttp:nohttp:1.0.4'
在程序入口处,即自定义类,继承Application
NoHttp.initialize(this);
创建请求队列
1
|
RequestQueue queue = NoHttp.newRequestQueue(); |
请求String数据
1
2
3
4
|
Request<String> request = NoHttp.createStringRequest(url); request.add( "userName" , "yolanda" ); request.add( "file" , new FileBinary(file)); queue.add( 0 , request, responseListener); |
请求Bitmap数据
1
2
|
Request<Bitmap> request = NoHttp.createImageRequest(url); queue.add(what, request, responseListener); |
请求Json数据
1
2
3
4
5
6
7
|
// JsonObject Request<JSONObject> request = NoHttp.createJsonObjectRequest(url); queue.add(what, request, responseListener); ... // JsonArray Request<JSONArray> request = NoHttp.createJsonArrayRequest(url); queue.add(what, request, responseListener); |
子线程同步请求
1
2
3
4
5
6
7
8
|
// 在当前线程发起请求,在线程这么使用 Request<String> request = NoHttp.createStringRequest(url); Response<String> response = NoHttp.startRequestSync(request); if (response.isSucceed()) { // 请求成功 } else { // 请求失败 } |
NoHttp接受请求结果
编辑以接受String结果为例,其它雷同
1
2
3
4
5
6
7
8
9
10
11
12
13
|
OnResponseListener<String> responseListener = new OnResponseListener<>() { // 请求开始时,可以显示一个Dialog public void onStart( int what) {} // 请求接受时,关闭Dialog public void onFinish( int what) {} // 接受请求结果 public void onSucceed( int what, Response<String> response) { // 拿到请求结果 String result = response.get(); } // 请求失败或者发生异常 public void onFailed( int what, String url, String error) {} }; |
取消请求
编辑取消单个请求
1
2
3
|
Request<String> request = NoHttp.createStringRequest(url); ... request.cancel(); |
取消队列中的指定请求
1
2
3
4
|
Request<String> request = NoHttp.createStringRequest(url); request.setCancelSign(sign); ... queue.cancelBySign(sign); // 取消用sign标志的请求 |
取消所有请求
1
|
queue.cancelAll(); |
停止队列
1
|
queue.stop(); |
文件下载模块
编辑创建下载队列
1
|
RequestQueue queue = NoHttp.newDownloadRequestQueue(); |
发起下载请求
1
2
3
4
5
6
7
|
//下载文件 DownloadRequest downloadRequest = NoHttp.createDownloadRequest(url); // what 区分下载 // downloadRequest 下载请求对象 // downloadListener 下载监听 queue.add( 0 , downloadRequest, downloadListener); |
暂停/停止下载
1
|
downloadRequest.cancel(); |
监听下载过程/进度
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
private DownloadListener downloadListener = new DownloadListener() { // 开始下载 public void onStart( int what, Headers header, long count) {} // 下载进度变化 public void onProgress( int what, int progress, long downCount) { // progress就是进度值 } // 下载完成 public void onFinish( int what, String filePath) {} // 下载出错 public void onDownloadError( int what, String error) {} // 下载暂停或者取消 public void onCancel( int what) {} }; |