如何获取安卓网络协议信息?
1、Http协议
基础知识:超文本传输协议(HTTP,HyperText Transfer Protocol)是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。
发送请求信息包括的内容:请求行、请求头、空行和请求体(可选)。
常用请求方式:Get请求和Post请求。
Get请求和Post请求定义:GET 向特定的资源发出请求;POST 向指定资源提交数据进行处理请求。
Get请求和Post请求区别:GET把参数包含在URL中,POST通过request body传递参数;POST的安全性要比GET的安全性高;GET方式提交的数据最多只能是1024字节,理论上POST没有限制。
2、Tcp/Ip
基础知识:TCP/IP字面上代表了两个协议:TCP(传输控制协议)和IP(网际协议),TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族。
三次握手:第一次握手:建立连接时,客户端发送a包到服务器,等待服务器确认;第二次握手:服务器收到a包,同时自己也发送一个b包,即a+b包;第三次握手:客户端收到服务器的a+b包,向服务器发送确认包,此包发送完毕,客户端和服务器进入(TCP连接成功)状态,完成三次握手。
TCP和UDP的区别:TCP面向连接、传输可靠(保证数据正确性,保证数据顺序)、用于传输大量数据(流模式)、速度慢,建立连接需要开销较多(时间,系统资源);UDP面向非连接、传输不可靠、用于传输少量数据(数据包模式)、速度快。
3、Socket编程
基础知识:网络上的两个程序通过一个双向的通讯连接实现数据的交换,这个双向链路的一端称为一个Socket。
工作过程:创建Socket/SocketService;打开连接到Socket/SocketService的输入/出流;按照一定的协议对Socket/SocketService进行读/写操作;关闭Socket/SocketService。
4、蓝牙BLE协议
基础概念:蓝牙协议包括核心协议层、替代电缆协议层、电话控制协议层和选用蓝牙协议层,蓝牙的核心协议由基带,链路管理,逻辑链路控制与适应协议和服务搜索协议等4部分组成,蓝牙BLE协议是蓝牙4.0的协议,BLE代表的是低耗能设备。
蓝牙2.0、3.0、4.0区别:蓝牙2.0可以支持立体声而蓝牙1.2版只支持单声道;蓝牙3.0比蓝牙2.0的传输速度有了质的提升,其他功能没什么变化;蓝牙4.0比之前的2.0和3.0有了很大的区别,主要特点有下面三个:超低功耗、免配对密码(一般通过NFC直连)、可以多连(一个耳机连2个收手机)、超长传输距离(理论100米,蓝牙2.0、3.0理论上是10米)。
5、Android获取网络连接状态新方法
问题背景:Android12上,有的app模块判断当前网络的类型和连接状态时,还是使用的旧的API,导致返回的结果不准确,影响代码逻辑判断。
原因分析:在Android 10以前的版本,大家都是通过NetworkInfo.java的getType()方法获取网络类型,通过isConnected()方法来判断是否连接上,但是在Android10之后,这些方法已过时,官方不推荐使用。
官方推荐API:监控 Android中的互联网连接,可以使用ConnectivityManager类,这是一个允许您查询网络状态的系统服务类,还有一个NetworkCapabilities类,代表活动网络的功能。
使用方法:registerNetworkCallback():此函数注册一个NetworkCallback对象来监听网络状态变化;unregisterNetworkCallback():此函数取消注册以前注册的NetworkCallback对象。
6、Okhttp的使用
添加依赖项:在项目中添加依赖项,通过访问Okhttp项目主页地址查找当前Okhttp的最新版本号。
同步:然后点击右上角的,完成同步,新建项目,在前面HttpURLConnextionDemo基础上修改。
申明OkHttpClient:在HttpURLConnextionDemo基础上申明一个OkHttpClient。
获取数据:分别使用两种请求获取数据,其中get请求使用同步请求方法,post请求使用的是异步请求回调的方法。
7、使用API获取网络数据
发起GET请求:用于从服务器获取数据,在Android中,可以使用HttpURLConnection或HttpClient类来发起GET请求。
发起POST请求:用于向服务器提交数据,同样地,我们可以使用HttpURLConnection或HttpClient类来发起POST请求。
以下是相关问题与解答的栏目,提出两个与本文相关的问题,并做出解答:
问题1:什么是HTTP协议?
答:HTTP(HyperText Transfer Protocol)是超文本传输协议的缩写,它是互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准,HTTP协议是客户端和服务器端请求和应答的标准(TCP),它规定了客户端和服务器之间的通信规则。
问题2:什么是TCP/IP协议?
答:TCP/IP字面上代表了两个协议:TCP(传输控制协议)和IP(网际协议),但是TCP/IP协议不是TCP和IP这两个协议的合称,而是指因特网整个TCP/IP协议族,从协议分层模型方面来讲,TCP/IP由四个层次组成:网络接口层(又称数据链路层)、网络层、传输层、应用层,也就是说Tcp/Ip协议族不仅仅是字面上的网络层和传输层,它还包含数据链路层和应用层!
以上内容就是解答有关“安卓获取网络协议”的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。