博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 网络协议
阅读量:5158 次
发布时间:2019-06-13

本文共 1891 字,大约阅读时间需要 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连接。

转载于:https://www.cnblogs.com/kingshow123/p/protocol3.html

你可能感兴趣的文章
System类
查看>>
tableView
查看>>
Happy Great BG-卡精度
查看>>
Xamarin Visual Studio不识别JDK路径
查看>>
菜鸟“抄程序”之道
查看>>
Ubuntu下关闭防火墙
查看>>
TCP/IP 邮件的原理
查看>>
原型设计工具
查看>>
windows下的C++ socket服务器(4)
查看>>
css3 2d转换3d转换以及动画的知识点汇总
查看>>
【Java】使用Eclipse进行远程调试,Linux下开启远程调试
查看>>
对Vue为什么不支持IE8的解释之一
查看>>
计算机改名导致数据库链接的诡异问题
查看>>
Java8内存模型—永久代(PermGen)和元空间(Metaspace)(转)
查看>>
ObjectiveC基础教程(第2版)
查看>>
centos 引导盘
查看>>
Notes of Daily Scrum Meeting(12.8)
查看>>
Apriori算法
查看>>
onlevelwasloaded的调用时机
查看>>
求出斐波那契数组
查看>>