Android手机与WEB服务器通信

Tomcat服务器

 

package com.edu.qufu.dinner.servlet;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class LoginServlet extends HttpServlet{
      protected void doGet(HttpServletRequest request,HttpServletResponse response)throws ServletException,
      IOException{
    	  String username = request.getParameter("username");
    	  String password = request.getParameter("password");
    	  System.out.println(username+":"+password);
    	  response.setContentType("text/html");
    	  response.setCharacterEncoding("utf-8");
    	  PrintWriter out = response.getWriter();
    	  String msg = null;
    	  if(username != null && username.equals("antkingwei") && password != null && password.equals("123")){
    		  msg="登录成功";
    	  }
    	  else {
    		  msg = "登录失败";
    	  }
    	  out.print(msg);
    	  out.flush();
    	  out.close();
    	  
      }
      protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException{
    	  doGet(request,response);
      }
}
 

 


 

获得电脑的IP地址



 手机客户端

 

package com.android.antking.http.url.connection;

import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class LoginActivity extends Activity {
	//声明用到的组件
	private Button login,cancel;
	private EditText userName,userPassword;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        //事例画所有控件
        login = (Button)this.findViewById(R.id.yes);
        cancel = (Button)this.findViewById(R.id.no);
        userName = (EditText)this.findViewById(R.id.username);
        userPassword = (EditText)this.findViewById(R.id.userpassword);
        //给按钮添加监听事件
        login.setOnClickListener(onClickListenr);
        cancel.setOnClickListener(onClickListenr);
        
    }
    /**
     * 按钮监听类,处理按钮事件
     */
    private View.OnClickListener onClickListenr = new View.OnClickListener() {
		
		@Override
		public void onClick(View v) {
			// TODO Auto-generated method stub
			if(v.getId()==R.id.yes){
				String nameString = userName.getText().toString();
				String password = userPassword.getText().toString();
			    login(nameString,password);
			}
			if(v.getId()==R.id.no){
				LoginActivity.this.finish();
			}
		}
	};
	/**
	 * 自定义一个消息提示窗口
	 * @param msg
	 */
	private void showDialog(String msg){
		AlertDialog.Builder builder = new AlertDialog.Builder(this);
		builder.setMessage(msg).setCancelable(false).setPositiveButton("确定", 
				new DialogInterface.OnClickListener() {
					
					@Override
					public void onClick(DialogInterface dialog, int id) {
						// TODO Auto-generated method stub
						
					}
				});
		AlertDialog alert = builder.create();
		alert.show();
	}
	private void login(String username,String password){
		//要访问的HttpServlet
		String urlStr="http://192.168.1.100:8080/DinnerClick/LoginServlet?";
		//要传递的数据
		String query = "username="+username+"&password="+password;
		urlStr+=query;
		try{
		URL url =new URL(urlStr);
		//获得连接
		HttpURLConnection conn = (HttpURLConnection)url.openConnection();
		if(true){
			//获得输入流
			InputStream in = conn.getInputStream();
			//创建一个缓冲字节数
			byte[] buffer = new byte[in.available()];
			//在输入流中读取数据并存放到缓冲字节数组中
			in.read(buffer);
			//将字节转换成字符串
			String msg = new String(buffer);
			showDialog(msg);
			in.close();//关闭数据流
		}
		else{
			//否则就关闭连接
			conn.disconnect();
			showDialog("连接失败");
		}
		}catch(Exception e){
			showDialog(e.getMessage());
		}
	}
}

 测试成功

 


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值