安卓开发使用get请求想服务器发送数据
经过今天的学习,成功实现了安卓使用get请求想服务器发送数据,具体操作如下:
1.使用eclipse写一个简单的servlet
在doget方法里面写上类似于javaweb那样从前端获取的数据的方法
使用request.getParameter("title"),获取Android中组件输入的值,这是第一步
2.使用Android studio写一个简单的布局文件,例如添加两个输入框,一个按钮
并获取到输入的值转换为String类型
3.编写Android向服务器发送请求的工具类
建议搜索“Android HTTP请求方式:HttpURLConnection”,这一段内容有非常详细的教程
在编写这个工具类的时候,主要有
第一:需要声明HttpURLConnection对象
第二:编写url,也就是请求地址,这里就用到了第一步中写的servlet,这里需要提示的地方就是
比如在eclipse中运行一个servlet,会有下面的效果:
这里在测试编写的servlet的时候需要我们手动添加数据
http://localhost:8081/WangLuoText01/GetContext?name=liang&pass=2
这里的localhost需要改成电脑的ip,具体的属性名称需要自己进行添加
例如,我今天写的url是这样的:
String address = "name="+name+"&age="+sex;
System.out.println(address);
//创建一个URL对象URL url = new URL("http://192.168.1.6:8081/WangLuoText01/TextGet?"+address);
然后需要我们对这个HttpURLConnection对象对象进行一些设置
//有了地址之后需要对connection进行设置
connection = (HttpURLConnection)url.openConnection();//调用URL对象的openConnection( )来获取HttpURLConnection对象实例
//设置请求方式
connection.setRequestMethod("Get");
//设置连接超时,读取超时的毫秒数,以及服务器希望得到的一些消息头
connection.setConnectTimeout(10000);// 5秒 连接主机的超时时间(单位:毫秒)
connection.setReadTimeout(5000);//5秒 从主机读取数据的超时时间(单位:毫秒)
之后在调用.getResponseCode()这个方法判断是否等于200 //200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页
到这里我们需要做的工作已经完成了
4.剩下的就是在activity中进行只用之前创建的get请求工具类
这里需要提示一点就是,安卓开发中的线程
访问网络要在子线程中实现,使用get取数据
具体思路就是这样了,但是还是有不足的地方就是在之前学习Java基础的时候,在线程这一块是草草了事,导致今天编程的时候出现了一些问题。