Android的网络通信机制,毫无置疑是用来和网络打交道的。通信方式分为两种:Http方式和Socket方式。Socket通信方式和Java中的没有什么区别,这个不是我们今天说的重点。重点的是http通信方式,我们来看看她的如山真面目吧。
一:Http通信方式分类
(1)HttpURLConnection方式
(2)HttpClient方式(这一种我们明日再叙)
二:Http的请求方法
有两种方法:post方法和get方法。主要区别如下:
相同点:二者均可以向服务器端传送数据,而服务器端根据请求返回相应的数据后,关闭连接;
不同点:(1)get方法传送的数据量小,不能大于2KB,post传递的则较大,一般不受限制
(2)post方法传递的参数值,不会显示在URL上,而get传递的则会显示在URL上
(3)post安全性较高,get安全性较低
三:HttpURLConnection请求方法--Get
在操作之前,我们应该自己搭建一个服务器,并且写一个服务器端的文件,这里我写的文件功能为,根据传递的参数全不为空的情况下,输出字符串的拼接形式。具体文件如下:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%><% String a = request.getParameter("a"); String b = request.getParameter("b"); if(a!=null&&b!=null){ out.println(a + b); }else { out.print("error"); }%> |
◆具体步骤:
可以在主界面上添加一个按钮,在按钮单击事件触发时产生如下操作,说白了,就是把一下的操作放到按钮的监听事件中,就OK了。
URL地址?键=值&键=值&。。。等,这里的键要和服务器中接收时的键相对应。
|
(2)创建URL对象,并将上述服务器地址字符串转化成URL地址
|
(3)创建HttpURLConnection对象,通过URL对象的openConnection打开网址,注意此时只是打开网址
|
(4)通过HttpURLConnection对象的connect方法进行与服务器的链接,这时才可以与服务器打交道
|
(5)通过HttpURLConnection的getInputStream方法获得输入流,对服务器的返回数据进行读取操作
|
特别重要的一点:要在Manifest.xml文件中添加访问网络的权限,android中所有的关于网络通信的操作均需要加上权限。
|
◆结果:在后台输出了字符串的拼接样式
|
HttpURLConnection请求方法--Post
在这里我们同样使用上述的服务器文件,返回字符串的拼接。
◆具体步骤:
定义一个字符串,值为服务器地址,由于这里是post方式进行请求数据,所以参数不能直接写在URL后面,注意。
|
(2)创建URL对象,并将上述服务器地址字符串转化成URL地址
|
(3)创建HttpURLConnection对象,通过URL对象的openConnection打开网址,注意此时只是打开网址
|
(4)设置HttpURLConnection对象的相关属性,如下
|
)通过HttpURLConnection对象的connect方法进行与服务器的链接,这时才可以与服务器打交道
|
通过HttpURLConnection对象的getOutputStream方法获得输出流,将传递的参数写入到其中。
|
通过HttpURLConnection对象的getInputStream方法获得输入流,对服务器的返回数据进行读取操作
|
◆结果:通过在控制台输出结果
01-07 15:55:54.622: INFO/System.out(618): quanquanquanquan |
Android通信方式还有很多,可能这些方式喜欢的人各有不同,大家就哪个用的习惯来哪个吧,这里我说的也不是很很全面,敬请谅解哈。
转载于:https://blog.51cto.com/cinderella7/1289581