摄影网站制作教程,cosy WordPress,西安网站建设推广优化,衡阳建设网站1 先看下基础部分#xff1a;
android okhttp网络访问是基于 tcp/ip 的 最上层是应用层的封装#xff0c;有http#xff0c;https#xff08;加密#xff09;#xff0c;ftp 下面是socket套接字的封装#xff0c;就是将ip和端口的封装 在下面就是tcp/udp 在下面 ip协议…1 先看下基础部分
android okhttp网络访问是基于 tcp/ip 的 最上层是应用层的封装有httphttps加密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)关闭执行线程池里执行的callrunning队列也包含 for (Call call : mHttpClient.dispatcher().runningCalls()) { if (call.request().tag().equals(requestKey)) call.cancel(); }
3 改进方案思考
1 okhttp里用到的okio 是不是可以用mmap来替代而它的缓存机制仍保留
2 网路差的时候是不是可以自动改为udp方式
期待我的改进版本的okhttp不期待我就把这两项给弄了