上次做了一个APP登录的界面,用户可以输入用户名和密码并点击登录按钮,这次顺着上次的思路我就想着给后台打通,请求后台接口来实现真正意义上的登录功能,在本次开发中,小李给了我很大的帮助,这里表示感谢。
首先需要导入一个第三方的jar包,这个jar包主要封装了get和POST请求,就像站长的httphelper类一样将一些请求功能进行封装,可以直接使用的。在工程项目下新建一个libs文件,然后将第三方xutils的jar包复制进去即可。成功后如下图
我们需要新建一个Java类,命名为App.java
[Java] 纯文本查看 复制代码 package com.example.hellowordtest;
import org.xutils.x;
import android.app.Application;
public class App extends Application{
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
x.Ext.init(this);
}
}
在MainActivity.java类的onCreate方法里面初始化。
[Java] 纯文本查看 复制代码 protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//初始化请求对象
x.view().inject(this);
然后在之前的btn.setOnClickListener事件里进行Java代码编写。
[Java] 纯文本查看 复制代码 btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String name=uname.getText().toString();//获取用户名
String pass=pwd.getText().toString();//获取输入的密码
String msg="用户名:"+name+",密码:"+pass;
//下面开始请求后台地址
RequestParams params = new RequestParams("http://192.168.18.185/Person/PersonHandler.ashx");
params.addBodyParameter("action", "login");
params.addBodyParameter("username", uname.getText().toString());
params.addBodyParameter("pwd", pwd.getText().toString());
params.addBodyParameter("type", "android");
x.http().post(params,new Callback.CommonCallback<String>() {
@Override
public void onCancelled(CancelledException arg0) {
// TODO Auto-generated method stub
}
@Override
public void onError(Throwable arg0, boolean arg1) {
// TODO Auto-generated method stub
Log.e("错误", arg0.toString());
}
@Override
public void onFinished() {
// TODO Auto-generated method stub
}
@Override
public void onSuccess(String arg0) {
//请求成功方法 arg0为返回的数据
Toast.makeText(MainActivity.this, arg0, Toast.LENGTH_LONG).show();
}
});
}
});
代码编写完成之后我们还需要设置一下联网权限,如图:
如图选择用户权限,点击ok:
选择Name:android.permission.INTERNET,然后Ctrl+S保存即可,如此该应用程序就具有了联网的权限。
其次我们需要在AndroidManifest.xml注册一下App.java类。
然后我们点击运行,执行效果如下:
好了,这样请求后台已经成功, 我们可以根据弹出的提示信息看到,返回的是一个json数据,下一个帖子我准备着手研究如何将返回的数据转换为Java对象。
|