android   程序猿搭建一个简单的服务器后台:

1、环境配置:

(1)、Eclipse (纯净版需安装ee插件)

提示:Help->Install new software->work with: Juno - http://download.eclipse.org/releases/juno(取消PHP相关的勾选)

(2)、安装Apache-tomact


2、新建Web项目:

提示:File->new->other->Dynamic Web Project->Next

(1)、填写项目名

(2)、Target Runtime 点击->Apache Tomcat v7.0 ->DownLoad and Install->finish

项目生成如图:




3、新建服务器Java类:

(1)、Java Resources目录下新建:MyHttpServlet

public class MyHttpServlet extends HttpServlet {public MyHttpServlet() {          super();      }        public void destroy() {          super.destroy();     }        @Override    public void doGet(HttpServletRequest request, HttpServletResponse response)              throws ServletException, IOException {              String username=request.getParameter("username");          String password=request.getParameter("password");                    username=new String (username.getBytes("ISO8859-1"),"UTF-8");        password=new String (password.getBytes("ISO8859-1"),"UTF-8");          System.out.println("姓名"+username);          System.out.println("密码"+password);          if(username.equals("GR")&&password.equals("8888")){                            //默认情况下使用的是iso8859——1编码,但是如果发现码表中没有当前字符,会使用当前系统下默认编码:GBK              response.getOutputStream().write("登录成功".getBytes("utf-8"));          }else{              response.getOutputStream().write("登录失败".getBytes("UTF-8"));          }      }          @Override    public void doPost(HttpServletRequest request, HttpServletResponse response)              throws ServletException, IOException {          this.doGet(request, response);            }  }

(2)、配置Web.xml

新增:

        testio.gr.ServerDemo.MyHttpServlet//文件路径test/Servers//这里可以自定义


(3)、双击 Tomcat v7.0 Server at localhost :




(4)、右键 Tomcat v7.0 Server at localhost,点击Add and Remove —— Add——Finish


(5)、运行测试:

点击:



运行结果:



(6)、请求测试:

打开浏览器,输入:

本地IP+端口号+/项目名+/映射名(即Web.xml中的映射名)+?+参数。。。。


例如:http://127.0.0.1:8080/SimpleAndroidServerDemo/Servers?username=GR&password=8888

请求成功:



Eclipse服务器接收:



4、创建Android项目:

这里就不过多介绍,代码如下:

import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.net.HttpURLConnection;import java.net.URL;/** * Created by GR on 2017/4/7. */public class NetUilts {    /*    * 用post方式登录    * @param username    * @param password    * @return 登录状态    * */    public static String  loginofPost(String username,String password){        HttpURLConnection conn=null;        try {            URL url=new URL("http://192.168.1.55:8080/SimpleAndroidServerDemo/Servers");            conn=(HttpURLConnection) url.openConnection();            conn.setRequestMethod("POST");//设置请求方式            conn.setConnectTimeout(10000);//设置连接超时时间            conn.setReadTimeout(5000);//设置读取超时时间            //POST请求的参数            OutputStream out=conn.getOutputStream();//获得输出流对象,用于向服务器写数据            String data="username="+username+"&"+"password="+password;            out.write(data.getBytes());//向服务器写数据;            out.close();//关闭输出流            conn.connect();//开始连接            int responseCode=conn.getResponseCode();//获取响应吗            if(responseCode==200){                //访问成功                InputStream is=conn.getInputStream();//得到InputStream输入流                String state=getstateFromInputstream(is);                return state;            }else{                //访问失败            }        } catch (Exception e) {            e.printStackTrace();        }finally{            if(conn!=null){//如果conn不等于空,则关闭连接                conn.disconnect();            }        }        return null;    }    /*     * 使用GET的方式登录     * @param username     * @param password     * @return 登录状态     * */    public static String loginOfGet(String username,String password){        HttpURLConnection conn=null;        try {            String data="username="+username+"&"+"password="+password;            URL url=new URL("http://192.168.1.55:8080/SimpleAndroidServerDemo/Servers?"+data);            conn=(HttpURLConnection) url.openConnection();            conn.setRequestMethod("GET");//设置请求方式            conn.setConnectTimeout(10000);//设置连接超时时间            conn.setReadTimeout(5000);//设置读取超时时间            conn.connect();//开始连接            int responseCode=conn.getResponseCode();//获取响应吗            if(responseCode==200){                //访问成功                InputStream is=conn.getInputStream();//得到InputStream输入流                String state=getstateFromInputstream(is);                Logger.i("请求结果:"+state);                return state;            }else{                //访问失败                Logger.i("访问失败!");            }        } catch (Exception e) {            e.printStackTrace();            Logger.i("访问异常!");        }finally{            if(conn!=null){//如果conn不等于空,则关闭连接                conn.disconnect();            }        }        return null;    }    private static String getstateFromInputstream(InputStream is) throws IOException {        ByteArrayOutputStream baos=new ByteArrayOutputStream();//定义一个缓存流        byte[] buffer=new byte[1024];//定义一个数组,用于读取is        int len=-1;        while((len =is.read(buffer)) != -1){//将字节写入缓存            baos.write(buffer,0,len);        }        is.close();//关闭输入流        String state =baos.toString();//将缓存流中的数据转换成字符串        baos.close();        return state;    }}


外部调用该方法即可。。。。(记得添加网络权限)


创建服务器主要是为了方便学习和开发自己App的功能调试



更多相关文章

  1. Android(安卓)Glide4.2.0版本使用
  2. Android设备和PC设备有线USB连接双向通信预研报告
  3. 【Android(安卓)+ Java】简便的异步Http连接框架
  4. Android配置----小米手机通过wifi连接ADB调试Android应用
  5. Android使用MQTT协议
  6. Android: requires android.permission.READ_EXTERNAL_STORAGE,
  7. Android9.0网络请求解决方案_小笔记
  8. Android(安卓)蓝牙开发(九)A2DP基本功能
  9. 【Android(安卓)okhttp源码解析 二】同步请求流程和源码分析

随机推荐

  1. Android应用程序框架
  2. 深入理解 Android(安卓)Activity的生命周
  3. android 设置透明效果
  4. android:text 文字阴影设置
  5. android 相对定位布局方向详解
  6. Android编译过程详解(一)
  7. android直接利用opencv打开摄像头失败原
  8. 形状图形(shape)
  9. android基础知识15:获得android系统信息03
  10. android ethernet