为了让初学者掌握GET方式和POST方式提交数据,接下来通过案例演示手机端如何提交数据到服务器。具体步骤如下:
(1)创建程序
创建一个名为“提交数据到服务器”的应用程序,将包名修改为cn.itcast.login,设计用户交互界面,具体如图14-6所示。
图14-6 “提交数据到服务器”界面
“提交数据到服务器”的布局文件(activity_main.xml)代码如下:
(2)编写界面交互代码
当UI界面创建好后,需要在MainActivity里面编写与界面交互的代码,用于实现不同方式提交数据到服务器并将服务器返回的信息显示在界面上的功能。其代码如下:
上述代码分别初始化了输入用户名和密码两个EditText和几种不同访问网络方式的Button。Button的点击事件主要调用了LoginService类中的方法来访问服务器并获取数据;获取到数据之后,调用到线程更新UI界面。
(3)创建工具类
由于本案例多处用到了访问网络的代码,因此将访问网络的代码封装成工具类LoginService。LoginService具体代码如下:
(www.daowen.com)
上述代码封装了不同方式与服务器进行数据交互的代码。从上述代码中可以看出,无论是使用GET方式还是POST方式,HttpURLConnection更简便。代码中多处用到了工具类StreamTools,StreamTools是一个将输入流转换成字符串的工具类,具体代码如下:
(4)添加权限
由于在本案例中需要访问网络,因此需要在AndroidMainfest.xml文件中配置相应的权限。具体代码如下:
(5)Web工程实例代码
由于本案例需要演示服务器接收手机端提交的参数,因此需要创建一个Web工程,模拟服务器。创建一个工程名为Web的javaEE工程,在src的目录下创建Login-Servlet,LoginServlet代码如下:
上述代码的主要功能是接收来自手机端的请求、获取到手机端的参数、校验手机端提交的数据、响应手机端请求并返回相应的数据。当手机端传递过来的用户名是zhangsan并且密码是143的时候,服务器就会返回“登录成功”的信息,否则返回“登录失败”的信息。需要注意的是,要在web.xml文件注册Servlet,具体代码如下:
运行Web程序,然后在浏览器中输入http://本机IP:8080/web/LoginServlet?usernname=zhangsan&password=143,测试是否部署好。
(6)运行程序提交数据
搭建好服务器之后,将程序部署到虚拟机上,运行之后可以得到如图14-7所示的结果。
图14-7 运行效果
从图14-7可以看出,数据成功提交到服务器,使用了HttpURLConnection和HttpClient两种方式来提交数据。从代码中可以看出使用HttpClient更加简便。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。