您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > Android网络通信-2003
L/O/G/OAndroid网络通信之HTTP通信接口(org.apache)httpURLConnetction接口(java.net)结论4背景:Android网络通信包括AndroidHttp通信AndroidSocket通信蓝牙和WIFI4123背景:Android平台网络通信AndroidSDK中一些与网络有关的包如下所示:包描述java.net提供与网络通信相关的类,包括流和数据包socket、Internet协议和常见HTTP处理。该包是一个多功能网络资源。有经验的Java开发人员可以立即使用这个熟悉的包创建应用程序。java.io虽然没有提供现实网络通信功能,但是仍然非常重要。该包中的类由其他Java包中提供的socket和链接使用。它们还用于与本地文件的交互。java.nio包含表示特定数据类型的缓冲区的类。适用于两个基于java语言的端点之间的通信。org.apache.*表示许多为HTTP通信提供精确控制和功能的包。可以将Apache视为流行的开源Web服务器。android.net除核心java.net.*类以外,包含额外的网络访问socket。该包包括URI类,后者频繁用于Android应用程序开发,而不仅仅是传统的联网。android.net.http包含处理SSL证书的类。背景:Android平台网络通信•在AndroidMainfest.xml文件中加入一行代码:•uses-permissionandroid:name=“android.permission.INTERNET”/背景:Android平台网络通信Android与服务器通信的方式一般有两种:−http通信方式:httpURLConnetction接口(Java.net)httpClient接口(org.apache)http通信也分为post方式和get方式。−socket通信方式通信—Get与PostGet和POST请求主要有几种区别:Post请求可以向服务器传送数据,而且数据放在HTMLHEADER内一起传送到服务端URL地址,数据对用户不可见。而get是把参数数据队列加到提交的URL中,值和表单内各个字段一一对应,例如(=%C4&inputT=2710)get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。get安全性非常低,post安全性较高。方式获取请求数据•Android的Get方式首先要初始化–HttpClientclient=newDefaultHttpClient();–HttpGetrequest=newHttpGet();•在初始化url地址可以预先定义一个字符串,在初始化HttpClient时作为构造函数的参数输入;亦可在创建好HttpGet的实例后,采用request.setURL()的方式设置地址。Get方式出了可以访问无参数的地址外也可带参数访问。方式获取请求数据•post方式比get方式要复杂。首先要通过HttpPost来构建一个post请求。方式如下:HttpPosthttppost=newHttpPost(url);•另外需要使用NameValuePair来保存客户端传递的参数,可以使用BasicNameValuePair来构造一个要被传递的参数,通过add方法把这些参数加入到NameValuePair中,代码为:ListNameValuePairparams=newArrayListNameValuePair();params.add(newBasicNameValuePair(valuename,value));•其他的方式post方式与get方式没有多大差别,可以通过HttpClient来请求连接,返回并响应处理。通信•Java网络编程熟悉的人,肯定不会对HttpURLConnection陌生,HttpURLConnection属于JavaAPI的标准接口,包含在包java.net中。而Android平台支持java.net的•在Android中除了使用WebView控件访问网络以外,还有用代码方式访问网络的方法,代码方式有时候会显得更加灵活。本节介绍使用URLConnection对象和HttpClient组件访问网络的方法。通信•URL的通信方式也可以分别采用前面章节介绍过的Post和Get两种方式来实现。•HttpURLConnection是java的标准类,继承自URLConnection类,URLConnection与HttpURLConnection都是抽象类,无法直接实例化对象。其对象主要通过URL的openConnection方法获得,创建一个httpURLConnection连接的代码如下所示:•openConnection方法先创建URLConnection或者HttpURLConnection实例,然后在必要的情况下进行隐式连接URLurl=newURL(“”);HttpURLConnectionurlConn=(HttpURLConnection)url.openConnection();通信•在真正连接操作之前还需要对HttpURLConnetcion进行属性设置:•//设置输入/输出流connection.setDoOutput(true);connection.setDoInput(true);•//设置请求的方式为Get或者Postconnection.setRequestMethod(“GET”);connection.setRequestMethod(“POST”);•//在设置POST方式时要注意,POST请求方式不能够使用缓存connection.setUseCaches(false);•在完成HttpURLConnection实例的初始化以后,调用connect接口完成连接。类,二者都是抽象类。其对象主要通过URL的openConnection方法获得。2.HttpClient接口HttpClient实际上是对Java提供方法的一些封装,在HttpURLConnection中的输入输出流操作,在这个接口中被统一封装成了HttpPost(HttpGet)和HttpResponse,这样,就减少了操作的繁琐性。
本文标题:Android网络通信-2003
链接地址:https://www.777doc.com/doc-4765460 .html