android 网络请求总结

1 先看下基础部分:

android okhttp网络访问是基于 tcp/ip 的

最上层是应用层的封装,有http,https(加密),ftp

下面是socket套接字的封装,就是将ip和端口的封装

在下面就是tcp/udp 在下面 ip协议层了。

2 下面看下常用的http/https请求方式

Volley:四个网络调度线程和一个缓存调度线程 适用范围:非大文件(缓存过大影响内存),非频繁数据(线程池线程数小)

OKHttp:用起来有点麻烦,使用时需要一定的经验,比如我的总结:

1 OkHttpClient是线程池和连接池的最小单位,能复用就复用,不然会产生多个线程池和连接池

2 可以用OkHttpClient对象newbuilder()来实现定制新的client请求,依然能实现共享线程池和连接池。

3 内部是quene的方式执行,但无法返回过来的也是顺序过来,需要及时cancel掉对应的call

对应的回调是 java.net.SocketException: Socket closed

关闭方案:

//添加tag

Request request = new Request.Builder().

url(url).tag("requestKey").build();

//When you want to cancel:

//关闭等待队列里的

for (Call call : mHttpClient.dispatcher().queuedCalls()) {

if (call.request().tag().equals("requestKey"))

call.cancel();

}

//B)关闭执行线程池里执行的call(running队列也包含)

for (Call call : mHttpClient.dispatcher().runningCalls()) {

if (call.request().tag().equals("requestKey"))

call.cancel();

}

3 改进方案思考

1 okhttp里用到的okio 是不是可以用mmap来替代,而它的缓存机制仍保留

2 网路差的时候是不是可以自动改为udp方式

期待我的改进版本的okhttp不,期待,我就把这两项给弄了

相关推荐
m0_7156744318 分钟前
2026年中国API安全产品综合排名:选型指南与行业趋势解析
网络·安全·网络安全
学烹饪的小胡桃33 分钟前
资产设备管理系统 WGFIX 怎么设置https访问
linux·运维·服务器·网络·安全
猫哥随身wifi1 小时前
AI 手机越智能,随身网络越关键|AI 终端带来的网络新需求
网络·人工智能·智能手机
邪修king1 小时前
Re:Linux系统篇(二十六):文件系统(二):Ext 文件系统底层详解:从 inode、块组到软硬链接,结合 Windows 讲透文件管理本质
android·java·linux
草莓熊Lotso2 小时前
【Redis 进阶】主从复制深度解析:从配置落地到 PSYNC 同步原理
linux·开发语言·网络·数据库·redis·缓存·php
爱学习的程序媛2 小时前
TCP / UDP 协议详解
网络·网络协议·udp·tcp·通信协议
爱学习的程序媛2 小时前
以太网协议详解
网络·网络协议·计算机网络·以太网·ethernet·通信协议
兔叭_哥2 小时前
WPS 阿里V3 全流程逆向分析与求解
网络·wps
又见情义2 小时前
RK3568 Android 13 版本号管理实战:基于 ROCKCHIP_BUILD_NUMBER 的定制化方案
android
比兔代理2 小时前
代理 IP 延迟优化全链路:从节点选型、TCP 参数到协议栈调优
网络·http·ip