<android>对NoHttp的封装使用,仅供学习参考

对NoHttp的简单封装使用

估计不少人页都用过nohttp了,那么怎么封装它比较好呢,我自己感觉有三点:


1.接口丰富
2.使用简单
3.耐操

(暂时没做到这样子,此帖会更新)

public class NohttpUtils<T> implements OnResponseListener<T> {
    private NoListener mListener;
    private AlertDialog.Builder builder;
    private AlertDialog dialog;
    private RequestQueue requestQueue;
    private Request<String> stringRequest;
    private Context context;
    private int RequestCode;

    /**
     * 外部使用
     *
     * @param context
     * @param mListener
     */
    public NohttpUtils(Context context, NoListener mListener) {
        this.mListener = mListener;
        this.context = context;
        builder = new AlertDialog.Builder(context);
        View view = View.inflate(context, R.layout.spots_dialog, null);
        builder.setView(view);
        requestQueue = NoHttp.newRequestQueue();
    }

    /**
     * 三参的在add的过程中会传入一个新的RequestCode,在本类中传递RequestCode使用
     *
     * @param context
     * @param mListener
     * @param RequestCode
     */
    public NohttpUtils(Context context, NoListener mListener, int RequestCode) {
        this.mListener = mListener;
        this.context = context;
        this.RequestCode = RequestCode;
        builder = new AlertDialog.Builder(context);
        View view = View.inflate(context, R.layout.spots_dialog, null);
        builder.setView(view);
        requestQueue = NoHttp.newRequestQueue();
    }


    @Override
    public void onStart(int what) {
        if (builder != null) {
            dialog = builder.show();
        }
    }

    @Override
    public void onSucceed(int what, Response<T> response) {
        if (mListener != null) {
            mListener.onSuccess(RequestCode, response.get().toString());
        }
    }

    @Override
    public void onFailed(int what, String url, Object tag, Exception exception, int responseCode, long networkMillis) {
        if (mListener != null) {
            mListener.onFailure(RequestCode, exception);
        }
    }

    @Override
    public void onFinish(int what) {
        if (dialog != null) {
            dialog.dismiss();
        }
    }


    /**
     * get请求
     */
    public void get(String url, int RequestCode, int timeOut) {
        stringRequest = NoHttp.createStringRequest(url, RequestMethod.GET);
        requestQueue.add(timeOut, stringRequest, new NohttpUtils<String>(context, mListener, RequestCode));
    }


    /**
     * post请求
     */
    public void post(String url, int RequestCode, int timeOut) {
        stringRequest = NoHttp.createStringRequest(url, RequestMethod.POST);
        requestQueue.add(timeOut, stringRequest, new NohttpUtils<String>(context, mListener));

    }
    
}
 
 
在外部这样使用:
 
    NoHttp.initialize(getApplication());
    
    NohttpUtils<Object> nohttpUtils = new NohttpUtils<>(this, new NoListener() {
        @Override
        public void onSuccess(int RequestCode, String context) {
            switch (RequestCode) {

                case LEFT_CODE:
                    left.setText("请求码是" + LEFT_CODE + "的响应结果:\n" + context);
                    break;

                case RIGHT_CODE:
                    right.setText("请求码是" + RIGHT_CODE + "的响应结果:\n" + context);
                    break;
            }
        }

        @Override
        public void onFailure(int responseCode, Exception exception) {

        }
    });
    

    String left_url = "http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    String right_url = "http://xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
    nohttpUtils.get(left_url, LEFT_CODE, 10);
    nohttpUtils.get(right_url, RIGHT_CODE, 10);

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值