xUtils框架的学习(一)

来源:互联网 发布:河南网络电视台大农联 编辑:程序博客网 时间:2024/06/05 08:58

xUtils框架的学习(一)

一般在网络中和服务器数据交互都使用post方法,所以整理了HttpUtils的POST请求

在Activity中创建HttpUtils对象

HttpUtils httpUtils = new HttpUtils();

创建RequestParams对象

 RequestParams params = new RequestParams();

将后台所需参数添加到RequestParams中的bodyParams中:

params.addBodyParameter("name", userName.getText().toString());params.addBodyParameter("psw", password.getText().toString());

bodyParams的定义如下

private List<NameValuePair> bodyParams;

其中NameValuePair的实现类,是只包含字符串对象name和key的类。

配置参数、发送请求

   //当前缓存到期时间   httpUtils.configCurrentHttpCacheExpiry(1000 * 10);   //调用send方法,接受四个参数   httpUtils.send(HttpRequest.HttpMethod.POST, HttpUrlData.LOGIN_URL, params, new RequestCallBack<String>() {            @Override            public void onSuccess(ResponseInfo<String> responseInfo) {//指定result为String类                try {                    JSONObject jsonObject = new JSONObject(responseInfo.result);//获得JSON对象                    //对象解析                    boolean success = jsonObject.getBoolean("success");                    String message = jsonObject.getString("message");                    if (success == true) {                        JSONObject jsonObject1 = jsonObject.getJSONObject("data");                        String userName = jsonObject1.getString("username");                        saveUserInfo(userName);//将用户名保存到本地                        Intent intent = new Intent(LoginActivity.this, BottomTabActivity.class);                        intent.putExtra("User", userName);                        startActivity(intent);                        LoginActivity.this.finish();                    } else {                        Toast.makeText(LoginActivity.this, message, Toast.LENGTH_SHORT).show();                    }                } catch (Exception e) {                    e.printStackTrace();                }            }            @Override            public void onFailure(HttpException e, String s) {            }        });

其中调用send方法,send方法接受四个参数,第一个参数POST,第二个参数为服务器接口的URL,第三个参数为RequestParams对象,最后一个参数为RequestCallBack对象。

RequestCallBack对象中的方法:

  //该函数表示和服务器连接成功,要解析JSon数据的要overWrite该方法   public abstract void onSuccess(ResponseInfo<T> var1);   var1对象里面有个 public T result;   获得该对象,转换成JSon数据就可以进行解析了。
//连接失败overWrite该方法。  public abstract void onFailure(HttpException var1, String var2);

0 0
原创粉丝点击