首页 > 其他分享 >HttpClient的构建

HttpClient的构建

时间:2023-03-10 22:11:55浏览次数:34  
标签:InnerHandler next 构建 DelegatingHandler HttpMessageHandler DefaultHttpMessageHand



HttpClient===》HttpMessageHandler===》HttpMessageHandlerBuilder===》DefaultHttpMessageHandlerBuilder

没有自定义的话,将采取DefaultHttpMessageHandlerBuilder中的实现

HttpMessageHandlerBuilder中build方法在DefaultHttpMessageHandlerBuilder为实现,并调用父级CreateHandlerPipeline来实现HttpMessageHandler
(就直接new对象),链接器DelegatingHandler 也是直接new List<DelegatingHandler>();

在CreateHandlerPipeline 中将DelegatingHandler 设置为只读

然后遍历 List<DelegatingHandler>()

primaryHandler 主处理器,其他的为DelegatingHandler 处理器,通过InnerHandler 引用下一个处理器







部分源码

for (int i = additionalHandlersList.Count - 1; i >= 0; i--) { handler.InnerHandler = next;//InnerHandler为 HttpMessageHandler next = handler;
}
return next;
 

标签:InnerHandler,next,构建,DelegatingHandler,HttpMessageHandler,DefaultHttpMessageHand
From: https://www.cnblogs.com/liujian1368928/p/17204795.html

相关文章

  • qt6CMake构建文件解释
    cmake_minimum_required(VERSION3.5)#用于构建CMake项目CMake最低版本project(01friststudyVERSION0.1LANGUAGESCXX)#通过project命令配置项目信息,就是版本简述......
  • #创作者激励# 【FFH】子系统,部件,模块编译构建全实践
    【本文正在参加2023年第一期优质创作者激励计划计】子系统,部件,模块编译构建全实践个人简介:深圳技术大学FSR实验室大三学生,正于九联科技实习,共同学习研究鸿蒙南向开发知识......
  • 走向必然王国:如何有把握地构建 GStreamer 管道?
    本文转载自许野平的博客版权声明:本文为博主原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接和本声明。GStreamer是一款非常优秀的媒体流构建工具。由于......
  • scrapy分布式爬虫构建步骤
    分布式爬虫实现步骤:1.安装一个scrapy-redis的组件原生的scrapy不能实现分布式爬虫,必须要让scrapy结合scrapy-redis组件一起实现分布式爬虫。原因是因为原生的scrapy的调......
  • 喜马拉雅基于DeepRec构建AI平台实践
    喜马拉雅作者:李超、陶云、许晨昱、胡文俊、张争光、张玉静、赵云鹏、张猛快速落地大模型训练和推理能力,带来业务指标和后续算法优化空间的显著提升。业务介绍喜马拉雅app的......
  • 构建Excel帮助类
    开发环境:.NetCore3.1,NPOI2.6.0usingNPOI.HSSF.UserModel;usingNPOI.SS.UserModel;usingNPOI.SS.Util;usingNPOI.XSSF.UserModel;usingSystem;usingSystem.C......
  • 构建samba共享文件服务器
    构建samba共享文件服务器拓扑图:实验需求:创建组名字benet,创建bob、tom、alice、marry将用户添加到benet,组安装samba服务器,bob、tom、alice为普通账户marry为管理员对所有目录......
  • 缓存+数据库构建高可靠的扣减方案
    数据库和纯缓存实现的扣减方案数据库方案的性能较差;纯缓存方案虽不会导致超卖,但因缓存不具备事务特性,极端情况下会存在缓存里的数据无法回滚,导致出现少卖的情况。......
  • Go构建遇到cgo动态库时解决方案
    1.问题golang构建程序很简单,当遇到需要调用c库时,如通常使用net,kafka,sqlite3程序运行时就会调用当前服务器的动态库,如果遇到没有库时,通常还需要下载比如alpine......
  • 使用NineData构建任意时间点(PITR)数据恢复能力
    在当前数字化经济的时代下,数据成为企业的关键资产。但因数据误删、服务器故障、入侵等原因导致数据丢失影响业务,会对公司造成重大损失,所以如何保证数据资产的安全、稳定及可......