文档章节

Android 支持网络协议以及简单用法

Drealin
 Drealin
发布于 2012/09/19 13:58
字数 683
阅读 956
收藏 6

Android对网络编程提供3中接口,即:Java接口,Apache接口,Android接口。Android提供了对HTTP,SSL,Cookie,DHCP等协议的封装,并支持套接字编程,同时对UTI也提供了支持。另外,还提供了连接管理器和WiFI管理器来增强对网络的支持。

1、HTTP协议:
Android中HTTP协议的主要体现在android.net.http和org.apache.http等包中。在android.net.http包中,主要通过AndroidHttpClient来实现HTTP协议,AndroidHttpClient实际上就是实现了org.apache.http.client.HttpClient,实际上就是DefaultHttpClient的子类,通过AndroidHttpClient newInstance(String userAgent, Context context)方法获得一个实例。其能够处理Cookie,但是在默认情况下无法维护Cookie,设置Cookie的方法:
context.setAttribute(ClientContext.COOKIE_STORE,cookieStore);
AndroidHttpClient通常和HttpHost、HttpUriRequest、HttpContext、ResponseHandler一起发起HTTP请求以及处理服务器响应。
2、SSL协议:
针对Web的网络安全协议,常见的HTTPS链接就采用了SSL技术,SSL协议的实现与数字证书密切相关。在android.net.http包中提供了SslCertificate和SslError来描述X509数字证书信息。在WebView中通过getCertificate()方法可以 查看当前页面是否拥有SSL证书。
3、Cookie实现:
Cookie用于识别用户信息,进行Session跟踪而存储在用户本地终端的数据,Cookie拥有自己的生命周期,可以存储用户信息,因此可能暴露用户信息,使用Cookie具有一定风险。Android中,Cookie的管理主要位于WebView,java.net,org.apache.http.cookie中,可以通过httpClient.getCookieStore().getCookies()来或得Cookie,使用Cookie的相关方法可以获得Cookie的信息。在WebView中,CookieManager可以用来设置、清除和获取Cookie。清空Cookie的方法CookiewManager.getInstance().removeAllCookie();
另:Cookie的信息保存在data\data\com.android.browser\databases目录下的webview.db中。
4、连接性管理:
Android通过ConnectivityManager提供对网络如WiFi,UMTS,GPRS的连接性管理。通过ConnectivityManager。getActiveNetworkInfo()方法可以获得介入方式,判断网络类型和当前状态。需要有权限android.permission.ACCESS_NETWORK_STATE.当网络发生变化时,系统会广播Action为android.net.conn.CONNECTIVITY_CHANGE的Intent消息。
5、WiFi管理:
对WiFi的管理,Android提供了WifiManager来进行管理。获取WiFi服务的的方法,context.getSystemService(WIFI_SERVICE);通过该服务可以获得设备可用网络的列表,获得当前激活网络的信息,执行热点扫描,测定信号强度等等。其具体方法可以自行查看API。Android4.0开始支持WiFi点对点的通信,获得WifiP2pManager服务的方法如下:
WifiP2pManager p2pManager = (WifiP2pManager) getSystemService(WIFI_P2P_SERVICE);
为了进行点对点同学需要下面几个步骤:
①通过initialize()初始化P2P连接
②通过discoverPeers()发现附近的设备
③通过connect()启动P2P连接。


© 著作权归作者所有

Drealin
粉丝 63
博文 42
码字总数 48099
作品 0
朝阳
程序员
私信 提问
Android图片缓存之初识Glide

前言: 前面总结学习了图片的使用以及Lru算法,今天来学习一下比较优秀的图片缓存开源框架。技术本身就要不断的更迭,从最初的自己使用SoftReference实现自己的图片缓存,到后来做电商项目自...

丁佳辉
2017/10/18
21
0
[无线] AndroidManifest.xml配置文件详解

AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅。下面是一个标准的AndroidManifest.xml文件样例。 从以上示例...

长平狐
2012/11/19
92
0
AndroidManifest.xml配置详解

AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅。下面是一个标准的AndroidManifest.xml文件样例。 [html]vi...

蓝狐乐队
2013/12/07
409
0
AndroidManifest.xml API

AndroidManifest.xml配置文件对于Android应用开发来说是非常重要的基础知识,本文旨在总结该配置文件中重点的用法,以便日后查阅。下面是一个标准的AndroidManifest.xml文件样例。 [html] v...

顶层设计
2012/10/23
202
0
Android 设备被指对 IPv6 支持不佳

外媒networkworld撰文表示,IPv4地址空间即将枯竭,但如果没有硬件支持的话IPv6也难以普及起来。运行Google Android系统的设备数以十亿计,今年第一季度出货的智能手机中Android手机就占了7...

oschina
2015/06/25
2.9K
13

没有更多内容

加载失败,请刷新页面

加载更多

CSS--列表

一、列表标识项 list-style-type none:去掉标识项 disc:默认实心圆 circle:空心圆 squire:矩形 二、列表项图片 list-style-img: 取值:url(路径) 三、列表项位置 list-style-position:...

wytao1995
今天
10
0
linux 命令-文本比较comm、diff、patch

本文原创首发于公众号:编程三分钟 今天学了三个文本比较的命令分享给大家。 comm comm 命令比较相同的文本 $ cat charabc$ cat chardiffadc 比如,我有两个文件char和chardiff如上,...

编程三分钟
今天
9
0
QML教程

https://blog.csdn.net/qq_40194498/article/category/7580030 https://blog.csdn.net/LaineGates/article/details/50887765...

shzwork
今天
7
0
HA Cluster之5

对于使用heartbeat v2版的CRM配置的集群信息都是保存在一个名为cib.xml的配置文件中,存放在/var/lib/heartbeat/crm/下。CIB:Cluster Information Base,由于xml文件配置不是那么方便,所以...

lhdzw
今天
10
0
玩转Redis-Redis基础数据结构及核心命令

  《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。本文主要讲述Redis的数据结构String,《玩转Redis-Redis基础数据结构及核心命令》相关操作命令为方便对比...

zxiaofan666
今天
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部