安卓的网络通信库

Android网络通信浅析
我们做爬虫的在搞App逆向时,大部分时候其实就是在和App中的网络通信打交道。
我们先聊一下Android的网络通信可能从什么地儿发出,以Python类比,Python原生的网络请求库是urllib和urllib2,它们可以很方便的实现http服务的调用,而Python的第三方库Requests库是基于 urllib的封装,它更加方便和优雅。

我们按照远近亲疏,缕一缕Android中的网络通信框架。

1. Android原生自带的网络通信库
HttpURLConnection
标准的Java接口(java.NET),HttpURLConnection基于http协议,支持get,post,put,delete等各种请求方式。。
HttpClient
Apache的HttpClient模块(org.apache.http),这个模块被放在Android的SDK(软件开发工具包)中,它旨在提供高效的、最新的、功能丰富的HTTP 服务。
这里需要讲一下这两大通信库的前世今生,在Android 2(2010年)的远古版本中,HttpURLConnection有个重大 Bug,所以那个时候推 荐使用HttpClient。时光荏苒,BUG被修复了,HttpURLConnection也不断得到优化和完善。从Android 5(2014年)开始,Android官方不再推荐使用Apache模块, Android 6.0的SDK中去掉了HttpCien,到了最新的Android 9版本中,Android更是彻底取消了对Apache HTTPClient的支持。

Java开发可以使用HttpClient,Android开发官方推荐用HttpUrlConnection。

2. 封装好的网络通信工具/框架
在Android实际开发中,一般都会使用别人封装好的第三方网络请求框架,原因也很简单,网络操作涉及到异步以及多线程,自己动手实现的话很麻烦。

Volley
在2013年的Google I/O大会上,Google推出了这款异步网络请求框架和图片加载框架。它特别适合数据量小,通信频繁的网络操作。它基于HttpUrlConnection,目前也有一定的使用量。
Android-Async-Http
基于Apache HttpClient库之上的一个异步网络请求处理库,现在已经不怎么用了。一是因为HttpClient被Android弃用,二是框架作者已停止维护,这个库知道即可。
OkHttp
OkHttp是大名鼎鼎的Square公司的开源网络请求框架,需要注意的一点是,它并非是基于HttpURLConnection和HttpClient的封装或者补充,事实上,它们是平级的,三者构成竞争关系。从Android 4.4开始,HttpURLConnection的底层实现也已经基于OkHttp,由此可见OkHttp是时下当之无愧最热门的HTTP框架。OKhttp简单、快速、高效,在底层实现上自成一派,是基于Socket的封装,后续实践中我们会体验到它的这些特点。
还没完,我们接下来还得介绍一个重头戏——Retrofit

Retrofit
同样出自于Square公司,Retrofit对Okhttp做了一层封装。但你千万别小瞧了这层封装,如果是Java老手或者Android开发人员当我没说,如果是新手,从这儿开始,就不能当成听故事了,得好好理解。

先看一下比较简单的介绍
--------------------- 
作者:天天记小本子上的lilac 
来源:CSDN 
原文:https://blog.csdn.net/qq_38851536/article/details/96736225 
版权声明:本文为博主原创文章,转载请附上博文链接!

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值