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 网络协议相关推荐

  1. android 网络协议

    1.IP协议:实现两个主机之间的接收和发送消息,消息被分成一个个小包 2.TCP协议:端对端协议,保证数据的准确,重发机制,将小包桉顺序放好.(当接收端收到消息后告诉发送端'已收到') 二者结合使用保 ...

  2. android 网络通信方式,Android中基于TCP协议的网络通信

    一.Android网络简介 Android与服务器的通信方式主要有两种,一种是Http通信,另一种是Socket通信. HTTP通信:Android中内置HttpClient,这样可以发方便的发送Ht ...

  3. 基于android的网络协议于ESP8266实现通信控制

    如何用有趣而新奇的方式为物联网设备配网? CSDN话题挑战赛第1期 活动详情地址:CSDN 参赛话题:[如何用有趣而新奇的方式为物联网设备配网?] 话题描述:配网,是物联网设备必不可少的步骤.配网指用 ...

  4. Android 网络编程(二) HTTP协议解析

    文章目录 引言 HTTP 简介 什么是HTTP,HTTPS 又是什么? HTTP 协议的特点 HTTP URL 格式 HTTP的报文 请求报文 请求行 请求报头 请求数据 响应保文 状态行 响应报头 ...

  5. Android HTTP协议请求网络(二)之HttpClient方式

    Android HTTP协议请求网络(一)之认识探索 Android HTTP协议请求网络(三)之HttpURLConnection方式 githup练习demo地址:https://github.c ...

  6. Android网络编程(一)HTTP协议原理

    相关文章 Android网络编程(一)HTTP协议原理 Android网络编程(二)HttpClient与HttpURLConnection Android网络编程(三)Volley用法全解析 And ...

  7. android访问网络的方法,Android Http协议访问网络实例(3种)

    之前关于Android Http协议访问网络的一点分析,最近需要回顾,就顺便发到随笔上了 Android中http连接主要是为了获取网络数据,目前了解的有3种方法: Httpconnection -- ...

  8. 基于Http协议的Android网络编程

    之前写过一篇Android网络编程<浅谈android网络编程>,随着了解了更多Android知识,我意识到HttpClient已经不推荐使用了,更是在Android 6.0中被废弃了,原 ...

  9. Android网络编程系列 一 Socket抽象层

    在<Android网络编程>系列文章中,前面已经将Java的通信底层大致的描述了,在我们了解了TCP/IP通信族架构及其原理,接下来我们就开始来了解基于tcp/ip协议层的Socket抽象 ...

最新文章

  1. [Go]结构体及其方法
  2. 两虎相争将带来优质的互联网搜索服务 --- 我看Google归来!
  3. delphi调用c#写的webservice中文出现乱码的问题
  4. LeetCode Algorithm 剑指 Offer 25. 合并两个排序的链表
  5. java线程同步——条件对象+synchronized 关键字
  6. mybatisplus 操作另一个数据库的数据_MySQL的数据库操作详解
  7. python使用pillow下载网络图片到本地预览
  8. moead算法流程步骤_算法——抓住程序的灵魂
  9. c#设计的简单登录界面
  10. 故事的小黄花,从CSDN那年就飘着
  11. 【剑指offer】最小的K个数
  12. iOS 网络请求封装
  13. 服务器远程桌面一直正在配置,关于远程桌面一直显示正在配置远程会话
  14. NTKO控件安装:“不能装载文档控件,请在检查浏览器的选项中检查浏览器的安全设置”问题
  15. 今日头条笔试题 数列
  16. Dreamweaver入门基础与HTML视频教程
  17. 卸载mysql5.6.34_完全卸载linux的MySQL
  18. DSPE-PEG3-Mal,带有DSPE的基团小分子PEG试剂
  19. 图形变换核心原理(平移、缩放、旋转,拉伸)
  20. 南宁富士康c语言笔试题,富士康笔试题目

热门文章

  1. jquery mysql表格_使用jQuery设计数据表格:设计表格基类
  2. python去除图像光照不均匀_【转载】光照不均匀图像分割技巧
  3. 字符集_超详细的MySQL数据库字符集总结,值得收藏
  4. python二级证书考试时间表_2019上半年计算机二级考试时间:3月30日至4月1日
  5. python运行游戏是否需要pygame_用Python和Pygame写游戏-从入门到放弃(1)
  6. 时间旅行java_[ 一起学React系列 -- 7 ] 秘术之时间旅行-2
  7. php表单的提交方法有什么,php – 确定哪个表单已提交的最佳方法是什么?
  8. mysql相互密码_去掉mysql命令行密码不安全的提示
  9. Anylogic 仿真建模(一)
  10. 计数排序(Counting sort)