打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
NoHttp详解之NoHttp最基本使用(无封装)


目录(?)[+]

NoHttp详解之NoHttp最基本使用(无封装)

NoHttp是专门做Android网络请求与下载的框架,框架直播视频源码下载地址


本文章demo下载

本文demo源码下载地址: http://download.csdn.net/detail/yanzhenjie1003/9433888
本文的例子来自上面的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时停止队列    }}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Volley源码分析(1)
Android利用Volley异步加载数据(JSON和图片)完整示例
Android Volley框架的几种post提交请求方式
volley完全解析
责任链模式
Android 各大网络请求库的比较及实战
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服