关于Xutils的Post请求以及注解的一些使用方式

今天来给大家讲讲关于Xutil的一些使用心得,不足之处还请各位码友指点一二。首先,在博主看来Xutils确实是一个相对来说比较强大的网络请求框架了,每次做项目都是优先考虑(博主我还是小菜鸟,见谅 - . -),老套路,废话不多说上代码。

首先最重要的当然是在新建的项目里边导入Xutils的最新架包,这些东西博主就不贴出来了,自己到网上下载就好

就拿登录接口来举例:

public static void UserLogin(RequestParams param, final DResponseCallBack callBack) {
        String ApiUrl = UrlsHttpBiz.USER_LOGIN_URLS;//用户登录接口
        HttpUtils http = new HttpUtils();
        http.send(HttpRequest.HttpMethod.POST, ApiUrl, param, new RequestCallBack() {
            @Override
            public void onSuccess(ResponseInfo responseInfo) {
                Log.i("kkkk","用户登录请求数据展示===="+ responseInfo.result);
                Gson gson = new Gson();
                PersonModle personModle = gson.fromJson(responseInfo.result,PersonModle.class);
                BaseModle.Datas.username = personModle.getData().username;
                if(personModle.code == 200){
                    callBack.Success(String.valueOf(personModle.code));
                }else{
                    callBack.Fail(personModle.message);
                }
                return;
            }
            @Override
            public void onFailure(HttpException error, String msg){
                callBack.Fail(msg);
                return;
            }
        });
    }

这一类型的网络请求方法都可以封装到一个类里边,然后在根据各自的需求调用。

调用方式如下:
RequestParams param = new RequestParams();
param.addBodyParameter("username", DL_editText_username.getText().toString());
param.addBodyParameter("password2", DL_editText_password.getText().toString());
    if(DL_editText_username.getText().toString().equals(username)&&
       DL_editText_password.getText().toString().equals(password)){
          /**在这里开始调用*/
          UserHttpBiz.UserLogin(param, new DResponseCallBack() {
              @Override
              public void Success(String Result) {
                 if(Result.equals("200")){
                    Toast.makeText(getApplication(),"登录成功",Toast.LENGTH_SHORT).show();
                    Intent login_intent = new Intent(LoginActivity.this,MainActivity.class);
                    startActivity(login_intent);
                    finish();
                    return;
                  }else{
                    Toast.makeText(getApplication(),"登录失败",Toast.LENGTH_SHORT).show();
                        }
                  }
              @Override
              public void Fail(String ErrMsg) {
                    Toast.makeText(getApplication(),ErrMsg,Toast.LENGTH_SHORT).show();
                        }
                    });

                }else{
                    Toast.makeText(getApplication(),"密码或账号填写有误",Toast.LENGTH_SHORT).show();
                }

关于接口的调用可能每个人有每个人的方式,按自己的编码方式来就好。关于Toast博主认为直接封装起来可能比较好,也方便调用。

接下来就是关于接口里边的一些方法,比如:DResponseCallBackpublic abstract class DResponseCallBack {

    public abstract void Success(String Result);
    public abstract void Fail(String ErrMsg);

}

那关于Xutils的Post请求就写到这,其他的一些参数的话都是一眼能够看明白的,我就不过多的赘述了。


关于Xutils的注解:

相信大家在最初接触代码的时候,听到最多的可能就是findViewById吧,其实博主我也最初也相当相当相当的讨厌这种又长又臭的代码了,但是奈何技术有限,只能硬着头皮一个一个的写。但是经过这么旧的进化,终于是守得云开啦,今天就跟大家讲讲怎么使用这个注解来摆脱findViewById。

Xutils是自带注解这么一个强大的功能的:

@ViewInject(R.id.Intothelibrary_layout)LinearLayout Intothelibrary_layout;

这样就可以了是不是简单粗暴。
再来讲讲控件的监听事件:
/**多个*/
@OnClick({R.id.Intothelibrary_layout,R.id.salecollection_layout})

/**单个*/
@OnClick(R.id.Intothelibrary_layout)

/**实现方法*/
public void OnClick(View v){
        switch (v.getId()){
            case R.id.Intothelibrary_layout:
                /**执行的内容*/
                break;
            case R.id.salecollection_layout:
                /**执行的内容*/
                break;
        }
    }

好了,就是这么简单。

你可能感兴趣的:(Android开发)