NoHttp

本文详细介绍了NoHttp库在网络请求中的应用,包括初始化配置、创建请求队列、发送不同类型的请求(如String、Bitmap和JSON数据)、同步请求、接收响应结果、取消请求等操作,并提供了文件下载的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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) {}
};
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值