首先你要在自己安卓项目中引入Xutils框架的一些依赖。如果项目是通过Gradle构建的,只需要加上这一句:
compile 'org.xutils:xutils:3.3.36'
如图所示:
//请求服务器
RequestParams users = new RequestParams("http://192.168.90.58:8080/login");
//封装json数据
JSONObject user = new JSONObject();
user.put("username",username);
user.put("password",password);
//设置传输数据为json格式
users.setAsJsonContent(true);
users.addParameter("user",user);
//提交数据(类似于前端的ajax请求,提交数据,并通过回调函数接收服务器响应的数据)
x.http().post(users, new Callback.CommonCallback<String>() {
@Override
public void onSuccess(String result) {
System.out.println(result);
int status = 0;
try {
//服务器返回的是一个json封装的字符串,将其转换为json对象
JSONObject jsonObject = new JSONObject(result);
status = jsonObject.getInt("status");
//吐司,测试一下
Toast.makeText(x.app(),""+status,Toast.LENGTH_SHORT).show();
//如果状态码正确,这里得到
if(status == 1){
Intent intent = new Intent();
//登录 向 index 的跳转,通过bundle携带数据
Bundle bundle= new Bundle();
bundle.putString("books",jsonObject.getJSONArray("books").toString());
intent.putExtra("books",bundle);
intent.setClass(MainActivity.this,IndexActivity.class);
MainActivity.this.startActivity(intent);
} else if(status == 0){
Toast.makeText(x.app(),"账号或密码错误",Toast.LENGTH_SHORT).show();
}
} catch (JSONException e) { e.printStackTrace(); }
System.out.println(status);
}
@Override
public void onError(Throwable ex, boolean isOnCallback) { }
@Override
public void onCancelled(CancelledException cex) { }
@Override
public void onFinished() { }
});
}
至此,请求服务器数据的功能已经实现,当然实现这个功能的方法多种多样,这只是其中一种。其实,学习编程,到最后大家会发现,很多东西都是讲究个思想,方法只是方法。希望以后能够深入框架里边去学习别人编程的思想吧。