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

版权声明:转载请注明本文转自严振杰的博客: 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);
    }
}
   
   
  • 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

在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。
            }
        });
    }
}
   
   
  • 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

在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。
            }
        });
    }

}
   
   
  • 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

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

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

http://blog.csdn.net/yanzhenjie1003/article/details/50679905

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值