Android 网络协议
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
Android 网络协议相关推荐
- android 网络协议
1.IP协议:实现两个主机之间的接收和发送消息,消息被分成一个个小包 2.TCP协议:端对端协议,保证数据的准确,重发机制,将小包桉顺序放好.(当接收端收到消息后告诉发送端'已收到') 二者结合使用保 ...
- android 网络通信方式,Android中基于TCP协议的网络通信
一.Android网络简介 Android与服务器的通信方式主要有两种,一种是Http通信,另一种是Socket通信. HTTP通信:Android中内置HttpClient,这样可以发方便的发送Ht ...
- 基于android的网络协议于ESP8266实现通信控制
如何用有趣而新奇的方式为物联网设备配网? CSDN话题挑战赛第1期 活动详情地址:CSDN 参赛话题:[如何用有趣而新奇的方式为物联网设备配网?] 话题描述:配网,是物联网设备必不可少的步骤.配网指用 ...
- Android 网络编程(二) HTTP协议解析
文章目录 引言 HTTP 简介 什么是HTTP,HTTPS 又是什么? HTTP 协议的特点 HTTP URL 格式 HTTP的报文 请求报文 请求行 请求报头 请求数据 响应保文 状态行 响应报头 ...
- Android HTTP协议请求网络(二)之HttpClient方式
Android HTTP协议请求网络(一)之认识探索 Android HTTP协议请求网络(三)之HttpURLConnection方式 githup练习demo地址:https://github.c ...
- Android网络编程(一)HTTP协议原理
相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley用法全解析 And ...
- android访问网络的方法,Android Http协议访问网络实例(3种)
之前关于Android Http协议访问网络的一点分析,最近需要回顾,就顺便发到随笔上了 Android中http连接主要是为了获取网络数据,目前了解的有3种方法: Httpconnection -- ...
- 基于Http协议的Android网络编程
之前写过一篇Android网络编程<浅谈android网络编程>,随着了解了更多Android知识,我意识到HttpClient已经不推荐使用了,更是在Android 6.0中被废弃了,原 ...
- Android网络编程系列 一 Socket抽象层
在<Android网络编程>系列文章中,前面已经将Java的通信底层大致的描述了,在我们了解了TCP/IP通信族架构及其原理,接下来我们就开始来了解基于tcp/ip协议层的Socket抽象 ...
最新文章
- [Go]结构体及其方法
- 两虎相争将带来优质的互联网搜索服务 --- 我看Google归来!
- delphi调用c#写的webservice中文出现乱码的问题
- LeetCode Algorithm 剑指 Offer 25. 合并两个排序的链表
- java线程同步——条件对象+synchronized 关键字
- mybatisplus 操作另一个数据库的数据_MySQL的数据库操作详解
- python使用pillow下载网络图片到本地预览
- moead算法流程步骤_算法——抓住程序的灵魂
- c#设计的简单登录界面
- 故事的小黄花,从CSDN那年就飘着
- 【剑指offer】最小的K个数
- iOS 网络请求封装
- 服务器远程桌面一直正在配置,关于远程桌面一直显示正在配置远程会话
- NTKO控件安装:“不能装载文档控件,请在检查浏览器的选项中检查浏览器的安全设置”问题
- 今日头条笔试题 数列
- Dreamweaver入门基础与HTML视频教程
- 卸载mysql5.6.34_完全卸载linux的MySQL
- DSPE-PEG3-Mal,带有DSPE的基团小分子PEG试剂
- 图形变换核心原理(平移、缩放、旋转,拉伸)
- 南宁富士康c语言笔试题,富士康笔试题目
热门文章
- jquery mysql表格_使用jQuery设计数据表格:设计表格基类
- python去除图像光照不均匀_【转载】光照不均匀图像分割技巧
- 字符集_超详细的MySQL数据库字符集总结,值得收藏
- python二级证书考试时间表_2019上半年计算机二级考试时间:3月30日至4月1日
- python运行游戏是否需要pygame_用Python和Pygame写游戏-从入门到放弃(1)
- 时间旅行java_[ 一起学React系列 -- 7 ] 秘术之时间旅行-2
- php表单的提交方法有什么,php – 确定哪个表单已提交的最佳方法是什么?
- mysql相互密码_去掉mysql命令行密码不安全的提示
- Anylogic 仿真建模(一)
- 计数排序(Counting sort)