关闭

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

标签: NoHttpNoHttp使用方法NoHttp教程
108141人阅读 评论(78) 收藏 举报
分类:

版权声明:转载请注明本文转自严振杰的博客: http://blog.yanzhenjie.com


NoHttp详细使用文档,请点我移步!

这里是一个最基本的使用,在项目中也可以直接这样使用,如果想学习更多请移步NoHttp主页:
https://github.com/yanzhenjie/NoHttp

特别注意:这里的RequestQueue是请求队列,默认3个并发请求,也就是有3个子线程在跑,所以正式项目中不要每发起一个请求就new一个队列,建议在BaseActivity#onCreate(Bundle)中new一个队列即可,这个activity的所有请求包括依赖此activityfragment都是用这个队列即可,在BaseActivity#onDestory()stop这个队列即可,当然特殊情况下可以再new一个Queue出来,也无伤大雅的。

建议读者阅读完下方的代码后再把上面这句话读一遍,会理解的更深刻。

BaseActivity,提供基础的封装

public class BaseActivtiy extends Activity implements View.OnClickListener {

    /**
     * 请求队列
     */
    private RequestQueue mRequestQueue;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 创建请求队列, 默认并发3个请求, 传入数字改变并发数量: NoHttp.newRequestQueue(5);
        mRequestQueue = NoHttp.newRequestQueue();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();

        mRequestQueue.cancelAll(); // 退出页面时时取消所有请求。
        mRequestQueue.stop(); // 退出时销毁队列,回收资源。
    }


    /**
     * 发起一个请求。
     *
     * @param what     what.
     * @param request  请求对象。
     * @param listener 结果监听。
     * @param <T>      要请求到的数据类型。
     */
    public <T> void request(int what, Request<T> request, OnResponseListener<T> listener) {
        mRequestQueue.add(what, request, listener);
    }
}

在BaseActivity的子类中使用

public class MainActivity extends BaseActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ...
    }

    /**
     * 请求用户信息。
     */
    private void requestUserInfo() {
        Request<String> req = NoHttp.createStringRequest(url);
        request(0, req, new OnResponseListener<String>() {
            @Override
            public void onStart(int what) {
                // 请求开始,可以显示一个dialog。
            }

            @Override
            public void onSucceed(int what, Response<String> response) {
                // 请求成功,这里判断服务器的响应码,假如你们服务器200时,才是业务成功:
                Headers headers = response.getHeaders();
                if(headers.getResponseCode() == 200) {
                    String result = response.get(); // 拿到结果。
                }
            }

            @Override
            public void onFailed(int what, Response<String> response) {
                // 请求失败,具体失败类型,请看nohttp主页的demo。
            }

            @Override
            public void onFinish(int what) {
                // 请求结束,关闭dialog。
            }
        });
    }
}

在BaseActivity的子类的Fragment中使用

public class MainFragment extends Fragment {

    /**
     * 请求用户信息。
     */
    private void requestUserInfo() {
        Request<String> req = NoHttp.createStringRequest(url);
        ((MainActivity)getActivity()).request(0, req, new OnResponseListener<String>() {
            @Override
            public void onStart(int what) {
                // 请求开始,可以显示一个dialog。
            }

            @Override
            public void onSucceed(int what, Response<String> response) {
                // 请求成功,这里判断服务器的响应码,假如你们服务器200时,才是业务成功:
                Headers headers = response.getHeaders();
                if(headers.getResponseCode() == 200) {
                    String result = response.get(); // 拿到结果。
                    }
            }

            @Override
            public void onFailed(int what, Response<String> response) {
                // 请求失败,具体失败类型,请看nohttp主页的demo。
            }

            @Override
            public void onFinish(int what) {
                // 请求结束,关闭dialog。
            }
        });
    }

}

如果想学习更多的使用方法,建议参考Demo:https://github.com/yanzhenjie/NoHttp
更多使用介绍请阅读NoHttp文档:doc.nohttp.net

版权声明:转载请注明本文转自严振杰的博客: http://blog.yanzhenjie.com

36
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

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

NoHttp最基础使用方法,NoHttp最原始使用方法。
  • yanzhenjie1003
  • yanzhenjie1003
  • 2016-02-17 13:36
  • 108141

Nohttp的使用(一)

Nohttp类似于volley的升级版,其使用步骤基本一致 Nohttp的特点: 1.多种请求方式并发调用,支持get,post,put等网络解析方式 2.文件上传,文件下载,下载进度回调,错误回调...
  • bo543937071
  • bo543937071
  • 2016-12-13 14:29
  • 7064

NoHttp的使用方式, 附加--NoHttp PK Volley对比分析!

NoHttp 特性: NoHttp是一个Android开源网络框架,实现了RFC2616(Http1.1)协议,一个标准的Http框架。支持普通请求、文件的上传与下载、自动维持Cookie、支持RF...
  • qq_35166847
  • qq_35166847
  • 2016-07-31 16:09
  • 4277

Nohttp的使用(二)封装

开源网络框架Nohttp有着非常大的优势,首先他是由国人研发的,Nohttp的详细文档都是中文,非常方便于我们进行研究和使用。其次,Nohttp的有着最大的优点:可以自由选择底层框架是HttpUrlC...
  • bo543937071
  • bo543937071
  • 2016-12-14 15:21
  • 413

noHttp封装请求,让请求更加便捷

  • 2016-07-11 11:10
  • 4.50MB
  • 下载

NoHttp的封装(设计回调机制)

http://blog.csdn.net/yanzhenjie1003/article/details/50679919 前言 不想看封装, 需要看NoHttp最原始使用的同学看这...
  • qq_31860607
  • qq_31860607
  • 2016-07-21 19:20
  • 110

NoHttp的封装

零丶关于Nohttp的基本使用请见 大神严振杰的博客: http://blog.csdn.net/yanzhenjie1003 废话不多说,直接进入程序 代码结构 实现效果 ...
  • dubuwucool
  • dubuwucool
  • 2016-12-15 08:48
  • 1012

nohttp的使用 ecplise版

  • 2016-04-23 18:53
  • 14.29MB
  • 下载

NoHttp请求的使用

官方文档:http://doc.nohttp.net/222880   跟着官网集成了下nohttp 1.初始化 定义自己的Applicastion NoHttp.Config config...
  • jiuweitianhu_12345
  • jiuweitianhu_12345
  • 2017-05-26 16:26
  • 80

NoHttp的使用

  • 2017-05-27 11:42
  • 3.01MB
  • 下载
    个人资料
    • 访问:1607981次
    • 积分:6525
    • 等级:
    • 排名:第4287名
    • 原创:52篇
    • 转载:0篇
    • 译文:1篇
    • 评论:1274条
    我的微信公众号
    欢迎关注我的公众号,不定期为您推送优选博文,生活趣事!
    关注我的微信公众号

    关注我的微博
    友情链接


    我的Github

    QQ交流群 547839514

    博客专栏