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) {}
};
|