okhttp执行流程

win11系统ping另一台电脑上VMware虚拟机的IP 我是用了两台电脑,所以刚才遇到一个问题就是两台电脑的IP 在同一局域网内ping不通。于是就找了很多资料,经过坚强的绝望后终于解决了。 下开始解决问题: VMWare提供了三种工作模式:bridged(桥接模式)、NAT(网络地址转换模式)和host-only(主机模式)。 1. bridged(桥接模式)   在这种模式下,VMWare虚拟出来的操作系统就像是局域网中的一台独立主机,它可以访问网内任何一台机器。在桥接模式下,你需要手工为虚拟系统配置IP地址、子网掩码,而且还要和宿主机器处于同一网段,这样虚 阅读详情

    1. newCall(Request)方法会返回一个RealCall对象,它是Call接口的实现。当调用 RealCall.execute() 的时候,RealCall.getResponseWithInterceptorChain()会被调用,它会发起网络请求并拿到返回的响应,装进一个Response对象并作为返回值返回;RealCall.enqueue()被调用的时候大同小异,区别在于enaueue()会使用Dispatcher的线程池来把请求放在后台线程进行,但实质上使用的同样也是 getResponseWithInterceptorChain()方法。 
    2. getResponseWithInterceptorChain()方法做的事:把所有配置好的 Interceptor放在一个List里,然后作为参数,创建一个RealInterceptorChain对象,并调用chain.proceed(request)来发起请求和获取响应。
    3. 在RealInterceptorChain中,多个 Interceptor会依次调用自己的intercept()方法。这个方法会做三件事:
    当然了,最后一个Interceptor的任务只有一个:做真正的网络请求并拿到响应
        a. 1.对请求进行预处理
        b. 2、预处理之后,重新调用RealIntercepterChain.proceed()把请求交给下一个Interceptor
        c. 3、在下一个Interceptor处理完成并返回之后,拿到Response进行后续处理
    4. 从上到下,每级Interceptor 做的事:
        a. o首先是开发者使用 addInterceptor(Interceptor) 所设置的,它们会按照开发者的要求,在所有其他Interceptor处理之前,进行最早的预处理工作,以及在收到Response之后,做最后的善后工作。如果你有统一的header要添加,可以在这里设置;
        b. o然后是RetryAndFollowUpInterceptor:它会对连接做一些初始化工作,并且负责在请求失败时的重试,以及重定向的自动后续请求。它的存在,可以让重试和重定向对于开发者是无感知的;
        c. BridgeInterceptor:它负责一些不影响开发者开发,但影响HTTP交互的一些额外预处理。例如,Content-Length的计算和添加、gzip的支持 (Accept-Encoding: gzip)、gzip压缩数据的解包,都是发生在这里;
        d. o CacheInterceptor:它负责Cache的处理。把它放在后面的网络交互相关Interceptor的前面的好处是,如果本地有了可用的Cache,一个请求可以在没有发生实质网络交互的情况下就返回缓存结果,而完全不需要开发者做出任何的额外工作,让Cache更加无感知;
        e. oConnectInterceptor:它负责建立连接。在这里,OkHttp会创建出网络请求所需要的TCP连接(如果是HTTP),或者是建立在TCP连接之上的TLS连接(如果是HTTPS),并且会创建出对应的HttpCodec对象(用于编码解码HTTP请求);
        f. 然后是开发者使用addNetworkInterceptor(Interceptor)所设置的,它们的行为逻辑和使用addInterceptor(Interceptor)创建的一样,但由于位置不同,所以这里创建的Interceptor会看到每个请求和响应的数据(包括重定向以及重试的一些中间请求和响应),并且看到的是完整原始数据,而不是没有加Content-Length的请求数据,或者Body还没有被gzip解压的响应数据。多数情况,这个方法不需要被使用,不过如果你要做网络调试,可以用它;
        g. o CallServerInterceptor:它负责实质的请求与响应的I/0操作,即往Socket里写入请求数据,和从Socket里读取响应数据。


 

CST 仿真_NFC仿真 在CST中实现NFC天线单体的仿真 阅读详情

相关推荐

解密微信视频号推荐算法的三大核心机制

本文深入解析微信视频号推荐算法的三大核心机制:用户行为数据、视频内容质量和社交关系链。通过详细的数据分析和实战测试,揭示算法如何根据完播率、互动深度、原创性检测和社交关系等因素决定内容推荐。帮助用户和创作者更好地理解并利用视频号算法,提升内容曝光和观看体验。

weixin_42573113的博客 1787

OkHttp 拦截器 一次发送多个请求

OkHttp 拦截器 一次发送多个请求 Request request = chain.request(); // 拦截器中获取request HttpUrl oldHttpUrl = request.url(); String method = request.method(); Log.e("HHHH","o-"+oldHttpUrl); Log.e("HHHH","o-"+method); Respon

honeylife的博客 1646

Win11系统下Abaqus2022与VS2022+oneAPI2023环境配置全攻略(附VUMAT子程序避坑指南)

本文详细指导在Windows 11系统下,为Abaqus 2022配置Visual Studio 2022与Intel oneAPI 2023的Fortran编译环境,以支持VUMAT等用户子程序开发。内容涵盖软件安装顺序、环境变量关联、快捷方式修改及关键验证步骤,并提供了首个VUMAT子程序的实战编写与模型验证方法,帮助用户高效搭建稳定可靠的仿真开发平台。

pytorch8learner的博客 317

okHttp并发异步发送请求

okHttp并发异步发送请求

qq_34854236的博客 932

从零开始:如何用Python手绘波特图并分析电路稳定性

本文详细介绍了如何使用Python绘制波特图并分析电路稳定性,涵盖从基础理论到实际应用的完整流程。通过NumPy和Matplotlib实现频域分析,包括RC低通滤波器和RLC带通滤波器的案例,以及相位裕度计算等高级技巧,为电子工程师提供了一套高效的电路分析解决方案。

hhh00的博客 371

2025年最新Cesium学习示例:Cesium-Examples

2025年最新Cesium学习示例:Cesium-Examples

2403_88103571的博客 1011

Okhttp之同步和异步请求简单分析

Okhttp同步和异步请求流程分析

菜鸟博客 9267

ROS学习【11】-----基于ubuntu16.04上Gazebo机器人环境搭建的传感器仿真(camera、kinect、Lidar),并通过Rviz进行数据显示

ROS学习-----基于ubuntu16.04上Gazebo机器人环境搭建的传感器仿真目录一、Gazebo环境搭建前的准备1、将搭建模型下载到我们的gazebo环境下2、升级我们的gazebo版本二、创建配置launch文件参数的world文件1、进入工程包mbot_gazebo2、创建文件夹worlds3、进入该文件夹4、创建playground.world文件5、创建room.world文件三...

qq_42451251的博客 3608

Android---网络编程之OkHttp3整体结构了解以及使用

相关 Android—网络编程之Http协议 Android—网络编程之OkHttp3整体结构了解以及使用 Android—网络编程之Okhttp3源码解析 Android—网络编程之Retrofit2整体结构了解以及+Okhttp3+rxjava2使用 Android—网络编程之Retrofit2源码分析 Android—网络编程之Socket编程(实例) ...

zcpHappy的博客 1126

GPT注册与使用全流程详解:从零到一的实战指南

本文详细介绍了GPT的注册与使用全流程,从认识GPT作为智能对话助手开始,到注册前的设备与环境准备、手把手完成账号注册、首次使用指南以及进阶使用技巧。文章还涵盖了安全使用与注意事项,帮助用户从零开始高效利用GPT提升工作效率和内容创作能力。

weixin_33843409的博客 396

别再凭感觉选电容了!手把手教你计算电机控制器里的母线电容(附Excel计算工具)

本文详细解析了电机控制器中母线电容的选型方法,从理论计算到工程实践,帮助工程师避免常见误区。通过精确计算纹波电压、电容容量等关键参数,并结合薄膜电容与电解电容的性能对比,提供实用的选型建议。附带的Excel计算工具可快速完成参数计算,适用于工业伺服驱动和电动车电机控制器设计。

weixin_28720573的博客 521

使用OkHttp流式请求OpenAI API(GPT API)接口

因为 GPT 流式请求的出色交互体验,我们打算做一个开源基础应用,方便开发者快速集成项目。 本应用集成 ChatGPT API,使用模型为 gpt-3.5-turbo,项目代码为 Kotlin 语言开发的安卓应用。 人机交互的趋势已经到来,本应用框架也希望能帮助更多开发者快速集成 ChatGPT 体验到人机交互的乐趣!至此,你应该已经完成了Chat机器人智能问答对接,一个智能QA机器人就实现了,后续我会继续进行AI能力的扩展,如多模态等。喜欢本文可以给开源项目一个 star~有问题可以留言或私信我。

gallonyin的博客 5742

PX4从放弃到精通(十一):混控及PWM输出

文章目录前言一、混控脚本二、使用步骤1.引入库2.读入数据总结 前言 一个人可以走的更快,一群人才能走的更远,交流学习加qq:2096723956 更多保姆级PX4+ROS学习视频:https://b23.tv/ZeUDKqy 分享知识,传递正能量,如有疏漏或不当之处,恳请指出. 一、混控脚本 混控脚本定义了不同 示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。 二、使用步骤 1.引入库 代码如下(示例): import numpy as np import pand

超维空间科技的博客 1万+

OkHttp 执行流程与为什么Callback在子线程中执行

当通过自定义的接口Server返回一个Call对象后,要执行请求就要调用Call的 enQueue方法或者execute方法,由于execute方法是同步方法,所以略过。Call是一个接口, 真正执行该方法的是Call的实现类(仅此一个实现类)RealCall的enqueue方法如下 @Override public void enqueue(Callback responseC

liu81952438的专栏 6032

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

【Android笔记】OKHttp源码执行流程

Android开发中,常用的第三方网络请求框架有Retrofit,OKHttp,Volley。最近重构项目框架采用的是Kotlin + Retrofit + RxJava,Retrofit的底层实现就是OKHttp实现。本篇文章介绍OKHttp的实现流程以及源码。

Ho博客 1011

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

OkHttp3 流程分析,简介执行源码Dispatcher RealCall

一 为什么推荐使用Okhttp3? 首先,我并不觉得OkHttp是一个网络框架。okhttp对标的,应该是HttpClient或者HttpURLConnection,okhttp应该是一种新的网络请求方法,而网络框架,应该是基于上面几个网络访问方式进行封装的。像volley(基于httpClient和httpURLConnection)或者retrofit2(基于OkHttp3)。 好吧,...

cmyperson的博客 233

OkHttp 源码分析(一)拦截器执行流程

目录 拦截器启动流程代码分析 拦截器怎么串行起来呢? 拦截器如何停下来 拦截器启动流程代码分析 拦截器的创建初始化以及启动过程,主要有3个步骤 创建拦截器集合; 创建串行职责链并放入拦截器集合以及初始索引; 启动串行拦截器; 具体的执行流程如下图 拦截器的主要逻辑在 RealCall.getResponseWithInterceptorChain()中 Response getResponseWithInterceptorChain() throws IOException

lyz417的专栏 678

OkHttp-Request-请求执行流程

OkHttp不同版本的代码差异挺大的,本篇文章中分析的源码是基于OkHttp 3.6.0版本进行的。 《OkHttp Request 请求执行流程》 《OkHttp - Interceptors(一)》 《OkHttp - Interceptors(二)》 《OkHttp - Interceptors(三)》 《OkHttp - Interceptors(四)》 一、 Request任务的调...

weixin_34241036的博客 546

RTFSC之OkHttp:执行一次同步/异步请求的流程

文章目录RequestOkHttpClientCallRealCallexecutegetResponseWithInterceptorChainenqueue参考 本文基于 OkHttp 3.14.2 进行分析 使用 OkHttp 进行一次普通的网络调用,可以使用下面两种方法: OkHttpClient.Builder().build().newCall(Request.Builder().ur...

lemay的博客 603

OkHttp 3.14.x 源码解析-执行流程

本文OkHttp源码基于3.14.x,版本下载地址:okHttp 3.14.x 前言 OkHttp是一个非常优秀的网络请求框架,使用方便,操作简单,并且目前比较流行的Retrofit也是默认使用OkHttp。因此从源码深入理解OkHttp是非常有必要的。故今天这篇首先将介绍OkHttp请求的执行流程。另外由于OkHttp从4.x版本开始使用Kotlin来编写,因此今天的源码解析是基于Java版...

jsyjst的博客 1213

okhttp网络框架源码解析五okhttp网络框架源码解析异步请求执行流程之线程池

1、在满足运行的并发请求数小于64并且请求数小于5时,就会调用线程池执行runnable对象call 2、executorService ()方法 这个方法是用synchronized关键字修饰的,主要是为了保证ExecutorService这个线程池对象是单例,这个方法返回的就是一个线程池单例对象这个线程池的创建,参数主要是两个,一个是第一个参数,corepoolsize,设...

nicolelili1的专栏 307

okhttp网络框架源码解析四okhttp网络框架源码解析异步请求执行流程之enqueue()方法

1、okhttp同步和异步请求的差别不是很大,同步调用的是execute(),而异步 调用的是enqueue()方法,但是这两者的内部实现机制有很多区别。 第一步创建OkhttpClient这个对象,第二步创建Request这个请求报文类,第三步根据request构建一个http请求Call类,第四步会调用enqueue()这个方法执行异步的请求。需要注意的是前三步都没有发起实际的网络请求,只是...

nicolelili1的专栏 1173

OKHttp源码解析(一)-执行流程

okhttp源码解析之同步、异步执行流程

H_xxxxd的博客 1193

okhttp网络框架源码解析三okhttp网络框架源码解析同步请求的执行流程及源码分析

一、okhttp同步请求和源码分析 1、okhttpclient对象的创建 不管同步请求也好,异步请求也好,都需要创建OkHttpClient,然后创建Request,然后调用okhttp的newCall()方法,创建实际的okhttp请求call对象。对于同步请求会调用OK HTTP的execute()方法,对于异步请求会调用enqueue()这个方法,这只是外部调用方法的简单区别,其实内部...

nicolelili1的专栏 273

OkHttp3 HTTP请求执行流程分析

OkHttp3的基本用法 使用OkHttp3发送Http请求并获得响应的过程大体为: 创建OkHttpClient对象。OkHttpClient为网络请求执行的一个中心,它会管理连接池,缓存,SocketFactory,代理,各种超时时间,DNS,请求执行结果的分发等许多内容。 创建Request对象。Request用于描述一个HTTP请求,比如请求的方法是"GET"还是"POST",请求的UR

tq08g2z的专栏 4110

OkHttp源码分析--执行流程

1.创建OkHttpClient OkHttpClient okHttpClient = new OkHttpClient.Builder().build(); OkHttp的创建采用了构建者模式,OkHttpClient.Builder()无参构造方法为 OkHttpClient的属性提供了默认值。 public Builder() { dispatcher = new Dispa...

wby371427的博客 230

OkHttp源代码分析-整体执行流程

前言 最进感触比较神的就是,学习一个框架的时候之后在阅读了源代码理解了执行流程之后,才会柔韧有余 否则就会出现每次使用的时候都需要百度或者看一下文档看看如何使用 。 整体分析 – OkHttpClient 首先是OKhttp说到okhttp的整体分析,使用过okhttp的小伙伴都了解我们需要先搞一个 OkHttpClient对象 ,OKhttp支持两种构造方式 默认的创建方式 public OkHttpClient() { this(new Builder()); } 可以看到这种方式,

xh_ssh的博客 240
上一篇: Rettrofit设计模式
下一篇: android的哪些Activity不混淆?
侯斯特
博客等级 码龄11年 3粉丝 20原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值