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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubif(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() {@Overridepublic void onClick(DialogInterface dialog, int id) {// TODO Auto-generated method stub}});AlertDialog alert = builder.create();alert.show();}private void login(String username,String password){//要访问的HttpServletString 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());}}}?测试成功
?
