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") @OverrIDe public 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();// 请求花费的时间 } } @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时停止队列 }}
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程小技巧。
总结以上是内存溢出为你收集整理的Android详解之NoHttp最基本使用(无封装)全部内容,希望文章能够帮你解决Android详解之NoHttp最基本使用(无封装)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)