android与本地tomcat的通信,实现登录功能

来源:互联网 发布:c语言的开发环境 编辑:程序博客网 时间:2024/05/31 19:16

最近需要实现android与部署在本地tomcat上的java web项目之间进行通信的功能,在这里总结一下。

首先,由于是与本地服务器通信,所以我是采用android模拟器实现的。常用的模拟器有夜神,海马玩等(官方模拟器用着比较卡) 但是夜神无法访问到本地tomcat,所以我

使用的海马玩,本地服务器的地址是10.0.2.2。

夜神连接androidstudio:cmd进入到Nox\bin下,nox_adb.exe  connect 127.0.0.1:62001

海马玩连接androidstudio:cmd进入Droid4X  下,adb connect 127.0.0.1:26944。 当然端口号随意。

java web服务端我使用的是springmvc+mybatis+spring。

思路:

android端的话,我使用的是HttpUrlConnection与服务端进行通信,传递的是json信息。主要代码如下:

public void postRequest() {        try {            jsonHandle=new JsonHandle();    jsonObject.put("username",username);            jsonObject.put("password",password);            data=jsonObject.toString().getBytes();//这是要发送给服务端的json信息,里面有用户名以及密码。            URL url=new URL(ip);//ip是后端具体的处理登录的url,例如http://10.0.2.2:8080/xxx/mvc/login,记得加上http。            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();            httpURLConnection.setConnectTimeout(3000);            httpURLConnection.setDoInput(true);            httpURLConnection.setDoOutput(true);            httpURLConnection.setRequestMethod("POST");    httpURLConnection.connect();    OutputStream outputStream = httpURLConnection.getOutputStream();            outputStream.write(data);            outputStream.flush(); //发送data   //读取服务端的返回信息。            InputStream is=httpURLConnection.getInputStream();             BufferedReader reader = new BufferedReader(new InputStreamReader(is));            StringBuilder sb = new StringBuilder();            String line = null;            try {                while ((line = reader.readLine()) != null) {                    sb.append(line + "/n");                }            } catch (Exception e) {                e.printStackTrace();            } finally {                try {                   is.close();                } catch (Exception e)                {e.printStackTrace();                }            }                  }catch (Exception e){            e.printStackTrace();        }    }


服务端,使用springmvc处理请求。代码如下:

@Controller@RequestMapping(value = "/mvc")public class LoginController {@RequestMapping(value = "/login",method=RequestMethod.POST)public void login(HttpServletRequest req,HttpServletResponse rep) throws IOException{BufferedReader br = null;try {br = req.getReader();//接收信息} catch (IOException e1) {// TODO Auto-generated catch blocke1.printStackTrace();}String line = null;String data = "";while ((line = br.readLine()) != null) {data += line;}try {rep.getOutputStream().write("信息".getBytes()); //发送信息。} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}



一般传递方式都是post.这样子,就达到了通信的目的,再加上一些逻辑代码,就能做到登录检测等功能啦

阅读全文
0 0
原创粉丝点击