Welcome

首页 / 移动开发 / Android / Android详解之NoHttp最基本使用(无封装)

NoHttp是专门做Android网络请求与下载的框架,NoHttp基本使用方法如下
本文demo源码下载地址: http://xiazai.jb51.net/201609/yuanma/AndroidNoHttp(jb51.net).rar

本文的例子来自上面的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<String> 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<String> onResponseListener = new OnResponseListener<String>() {@SuppressWarnings("unused")@Overridepublic void onSucceed(int what, Response<String> response) { if (what == NOHTTP_WHAT_TEST) {// 判断what是否是刚才指定的请求// 请求成功String result = response.get();// 响应结果// 响应头Headers headers = response.getHeaders();headers.getResponseCode();// 响应码response.getNetworkMillis();// 请求花费的时间 }}@Overridepublic void onStart(int what) { // 请求开始,显示dialog mWaitDialog.show();}@Overridepublic void onFinish(int what) { // 请求结束,关闭dialog mWaitDialog.dismiss();}@Overridepublic 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时停止队列 }}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。