android nohttp的封装,Android详解之NoHttp最基本使用(无封装)

NoHttp是专门做Android网络请求与下载的框架,NoHttp基本使用方法如下

本文的例子来自上面的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 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 onResponseListener = new OnResponseListener() {

@SuppressWarnings("unused")

@Override

public void onSucceed(int what, Response 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时停止队列

}

}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值