Android应用连接服务器代码

来源:互联网 发布:药物查询软件 编辑:程序博客网 时间:2024/05/17 06:51

一、Android端代码:

//这是一个工具类,需要连接服务器的时候直接在所需的activity中调用静态方法即可import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.net.URLDecoder;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.protocol.HTTP;public class LandServer {private static String url = "http://192.168.0.106:8080/Helper/servlet/";private static String result;private static HttpClient hc = new DefaultHttpClient();public static String doPost(String path,String name, String psd) {HttpPost hp = new HttpPost(url+path);NameValuePair n = new BasicNameValuePair("username", name);NameValuePair u = new BasicNameValuePair("password", psd);List<NameValuePair> list = new ArrayList<NameValuePair>();list.add(n);list.add(u);try {HttpEntity he =new UrlEncodedFormEntity(list,HTTP.UTF_8);hp.setEntity(he);HttpResponse response = hc.execute(hp);System.out.println(response.getStatusLine().getStatusCode());if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK){HttpEntity het =response.getEntity();InputStream in = het.getContent();BufferedReader bf = new BufferedReader(new InputStreamReader(in));String redLine = null;while((redLine=bf.readLine())!=null){System.out.println("redLine: " + redLine);result =redLine;}in.close();}else{System.out.println(response.getStatusLine().getStatusCode());result = "error";}} catch (Exception e) {e.printStackTrace();result = "Exception";}System.out.println(result);return result;}}

二、服务器端代码

//接受Android发来的请求,并从request中取出参数,通过response向Android端返回数据import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.http.HttpSession;import utils.DealData;import domain.User;public class SchoolHelper extends HttpServlet {// public SchoolHelper() {// super();// }//// public void destroy() {// super.destroy();//// }public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html");PrintWriter out = response.getWriter();String username = request.getParameter("username");String password = request.getParameter("password");System.out.println("username : " + username + "  password" + password);List<User>users = new ArrayList<User>();users = DealData.getAllUsers("users");User currentuser = new User();boolean flag = false;for(User u:users){if(u.getUsername().equals(username)&&u.getPassword().equals(password)){flag = true;currentuser = u;}}System.out.println(flag);if(flag){HttpSession session = request.getSession();session.setAttribute("currentuser", currentuser);out.print("true");}else{out.print("false");}}public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException {this.doGet(request, response);System.out.println("成功");}} 



所以这两段代码结合起来就实现了一个Android应用的登录功能

三、注意

一定要给应用设置internet权限,否则打死都连不通(曾经被这个坑得很惨………………):

<uses-permission android:name="android.permission.INTERNET" />


0 0
原创粉丝点击