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

最近需要实现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 block
			e1.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 block
		e.printStackTrace();
		}
}



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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值