如何“独立”使用PolicyHttpMessageHandler?

2023-12-13

我只是想创建一个简单的测试,我使用DelegateHandlers实例化一个HttpClient无需带Asp.net Core包。 我有 2 个删除处理程序

  • ThrottlingDelegatingHandler
  • PolicyHttpMessageHandler(来自波莉包)

我怎样才能将两者结合起来并传递给HttpClient?

var policy = HttpPolicyExtensions.HandleTransientHttpError().CircuitBreakerAsync(5, TimeSpan.FromSeconds(30));
var pollyHandler = new PolicyHttpMessageHandler(policy);
var http = new HttpClient(new ThrottlingDelegatingHandler(MaxParallelism, pollyHandler));

上面给了我一个错误:System.InvalidOperationException : The inner handler has not been assigned.

The PolicyHttpMessageHandler没有可以传递的构造函数innerHandler.

我怎样才能做到这一点?


你必须设置InnerHandler在你最内心的处理者中HttpClientHandler像这样:

var policy = HttpPolicyExtensions.HandleTransientHttpError().CircuitBreakerAsync(5, TimeSpan.FromSeconds(30));
var pollyHandler = new PolicyHttpMessageHandler(policy);

//New line
pollyHandler.InnerHandler = new HttpClientHandler();

var http = new HttpClient(new ThrottlingDelegatingHandler(MaxParallelism, pollyHandler));

您基本上必须设置管道中的下一个处理程序。


以供参考:如果未指定处理程序,这就是 HttpClient 的构造方式

#region Constructors

public HttpClient() : this(new HttpClientHandler())
{
}

public HttpClient(HttpMessageHandler handler) : this(handler, true)
{
}

public HttpClient(HttpMessageHandler handler, bool disposeHandler) : base(handler, disposeHandler)
{
    _timeout = s_defaultTimeout;
    _maxResponseContentBufferSize = HttpContent.MaxBufferSize;
    _pendingRequestsCts = new CancellationTokenSource();
}

#endregion Constructors

哪里的base is the HttpMessageInvoker class

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何“独立”使用PolicyHttpMessageHandler? 的相关文章

  • 从复选框列表中选择循环生成的复选框中的一个复选框

    抱歉我的英语不好 在我的 ASP NET 网站上 我从 SQL 表导入软件列表 看起来像这样 但实际上要长得多 Microsoft Application Error Reporting br br Microsoft Applicatio
  • 当事件button.click发生时,如何获取按钮名称/标签?

    我以编程方式制作按钮并将它们添加到堆栈面板中 以便每次用户导航到页面时按钮都会发生变化 我正在尝试做这样的事情 当我单击创建的按钮时 它将获取按钮的标签并转到正确的页面 但是 我无法使用 RoutedEventHandler 访问按钮元素
  • 如何将 .txt 文件中的数据转换为 xml? C#

    我在一个文本文件中有数千行数据 我想通过将其转换为更容易搜索的内容来轻松搜索 我希望 XML 或其他类型的大型数据结构 尽管我不确定它是否是最好的对于我的想法 每行的数据如下所示 第 31 册 托马斯 乔治 32 34 154 每本书都不是
  • 强制初始化模板类的静态数据成员

    关于模板类的静态数据成员未初始化存在一些问题 不幸的是 这些都没有能够帮助我解决我的具体问题的答案 我有一个模板类 它有一个静态数据成员 必须为特定类型显式实例化 即必须专门化 如果不是这种情况 使用不同的模板函数应该会导致链接器错误 这是
  • RestSharp获取序列化输出

    我正在寻找一种方法来访问 AddBody 调用的序列化结果 我正在使用内置的 RestSharp 序列化器 例子 class Foo public string FooField void SendRecord var f new Foo
  • 语音识别编程问题入门

    所以 你们可能都看过 钢铁侠 其中托尼与一个名为贾维斯的人工智能系统进行交互 演示剪辑here http www youtube com watch v Go8zsh1Ev6Y 抱歉 这是广告 我非常熟悉 C C 和 Visual Basi
  • 如何使用 Regex.Replace 从字符串中删除数字?

    我需要使用Regex Replace从字符串中删除所有数字和符号 输入示例 123 abcd33输出示例 abcd 请尝试以下操作 var output Regex Replace input d string Empty The d标识符
  • Eigen 和 OpenMP:由于错误共享和线程开销而没有并行化

    系统规格 Intel Xeon E7 v3 处理器 4 插槽 16 核 插槽 2 线程 核心 Eigen 系列和 C 的使用 以下是代码片段的串行实现 Eigen VectorXd get Row const int j const int
  • 什么是空终止字符串?

    它与什么不同标准 字符串 http www cplusplus com reference string string 字符串 实际上只是一个数组chars 空终止字符串是指其中包含空字符的字符串 0 标记字符串的结尾 不一定是数组的结尾
  • C++中判断unicode字符是全角还是半角

    我正在编写一个终端 控制台 应用程序 该应用程序应该包装任意 unicode 文本 终端通常使用等宽 固定宽度 字体 因此要换行文本 只需计算字符数并观察单词是否适合一行并采取相应的操作 问题是 Unicode 表中的全角字符在终端中占用了
  • 在 C# 中检查 PowerShell 执行策略的最佳方法是什么?

    当你跑步时Get ExecutionPolicy在 PowerShell 中 它得到有效的执行政策 https learn microsoft com en us powershell module microsoft powershell
  • C++ - 多维数组

    处理多维数组时 是否可以为数组分配两种不同的变量类型 例如你有数组int example i j 有可能吗i and j是两种完全不同的变量类型 例如 int 和 string 听起来您正在寻找 std vector
  • 将二变量 std::function 转换为单变量 std::function

    我有一个函数 它获取两个值 x 和 y 并返回结果 std function lt double double double gt mult double x double y return x y 现在我想得到一个常量 y 的单变量函数
  • 将 Word 转换为 PDF - 禁用“保存”对话框

    我有一个用 C 编写的 Word 到 PDF 转换器 除了一件事之外 它工作得很好 有时 在某些 Word 文件上 后台会出现一条消息保存源文件中的更改 gt 是 否 取消 但我没有对源文件进行任何更改 我只想从 Word 文件创建 PDF
  • 如何最好地以编程方式将 `__attribute__ ((unused))` 应用于这些自动生成的对象?

    In my makefile我有以下目标 它将文本 HTML 资源 编译 为unsigned char数组使用xxd i http linuxcommand org man pages xxd1 html 我将结果包装在匿名命名空间和标头保
  • 模板类中的无效数据类型生成编译时错误?

    我正在使用 C 创建一个字符串类 我希望该类仅接受数据类型 char 和 wchar t 并且我希望编译器在编译时使用 error 捕获任何无效数据类型 我不喜欢使用assert 我怎样才能做到这一点 您可以使用静态断言 促进提供一个 ht
  • 如何解压 msgpack 文件?

    我正在将 msgpack 编码的数据写入文件 在编写时 我只是使用 C API 的 fbuffer 如 我为示例删除了所有错误处理 FILE fp fopen filename ab msgpack packer pk msgpack pa
  • EntityFramework 6.0.0.0 读取数据,但不插入

    我创建了一个基于服务的数据库 folderName gt Add New Item gt Data gt Service based Database文件到 WPF 应用程序中 然后我用过Database First方法并创建了Person
  • 无法将字符串文字分配给装箱的 std::string 向量

    这是我的类型系统的简化版本 include
  • 在 System.Type 上使用条件断点时出错

    这是函数 public void Init System Type Type this Type Type BuildFieldAttributes BuildDataColumns FieldAttributes 我在第一行设置了一个断点

随机推荐

  • 注册本地通知

    我正在开发一个带有phonegap的IOS应用程序 需要为其设置本地通知 该通知将在每个星期五和指定时间重复 还要求用户决定是否接收本地通知 我建议您阅读以下有关该主题的文章 我发现它非常有帮助 http useyourloaf com b
  • Instagram 视频 iPhone 挂钩

    目前最好的解决方案 https stackoverflow com a 21888830 1786820 我正在尝试做得更好 通过使用从 PhotoRoll 中预先选择的视频文件和预加载的标题打开 Instagram 应用程序 在 Flip
  • Native-session 针对代码点火器 2.1.4 进行了修改...这有意义吗?

    有人看到 CI 2 1 4 的修改有问题吗 该类是为 1 7 2 编写的 Github链接 问题 1 regenerate id的用途是什么 是会话 ID 轮换吗 2 session write close的潜在问题是什么 如评论中所示 3
  • 从c#中查找msform上的所有控件

    我正在尝试使用 VBA 可扩展性互操作从 c 查找 msform 上的所有控件 我可以使用以下方式找到所有表格 using System using Microsoft Office Interop Excel using Microsof
  • 如何使用 Python Urwid 制作类似聊天的 UI? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我已经可以使用 gevent 和 Zeromq 实现聊天守护进程 但我想为它们制作一个控制台 UI 我第一次尝试 ncurses 失败了 所以我尝试了Urwid并发现该项目nig
  • 用Java制作数字时钟

    我正在为一个项目制作一个数字时钟 我有四个课程 DigitalTimeUI 这是 JFrame 类 TitlePanel DigitPanel and ColonPanel 它们是所述项目的 JPanel 完成后 它应该看起来像这样 我坚持
  • 无法让 selenium webdriver 在 azure databricks 中工作

    我们有一些 python 脚本可以抓取网站并且运行良好 现在我们想在 Azure Databricks 中执行此操作 我们认为我们可以通过 Databricks 论坛中的以下帖子找到解决方案 但不幸的是 它不起作用 https forums
  • 将两个 datagridview 列合并为一个新列

    我想将两个 datagridview 列合并为一个新列 我首先将两个 col 的 Visible 属性更改为 false 然后尝试添加新的 col 该值必须格式化为以下 col1 Value 基金 col2 Value 是以上列的值 str
  • Ubuntu 中的 .gradle 目录在哪里?

    在 Windows 中 它是 C Users me gradle 但是Ubuntu呢 它在不同的位置吗 如果是的话 在哪里 我到处寻找但找不到它 它应该位于 HOME gradle gradle 和 或 项目特定
  • 如何将我的应用程序添加到 Android 默认拨号器选择中?

    我的问题是如何将我的应用程序添加到 android 默认拨号器选择中 更具体地说 而不使用 android intent action CALL PRIVILEGED 现在我正在使用下面的代码 效果很好
  • 从 React TypeScript 组件调用外部 Javascript 函数

    我有一个带有打字稿的 React Redux 应用程序 所以场景是这样的 我有一个包含一些javascript的index cshtml文件 现在 在我的 React 组件上 在 componentWillMount 函数的 Main ts
  • 使用 savefiledialog 保存图像时出现问题

    我正在使用 savefiledialog 来保存图像 画布是图片框 加载的图像是位图 当我尝试保存它时 文件已创建 但不知何故已损坏 因为当我尝试再次加载图像或在不同的查看器中显示时它不起作用 我的意思是保存的文件已损坏 有一种保存图像的方
  • 这个 LLVM 1.5 警告是什么意思? “没有‘id’的协议限定符已经过时了”

    我刚刚尝试使用 LLVM 1 5 编译器 包含在 XCode 3 2 3 中 编译 iOS 项目 并且收到了很多新警告 其中包括以下几个警告 protocol qualifiers without id is archaic 例如 这发生在
  • 标准化矩阵行,使其范数等于 1 (MATLAB)

    我有一个以下问题 我有一个矩阵A尺寸为 16x22440 我需要做的是对该矩阵的每一行进行归一化 使每行的范数等于 1 for n 1 16 norm A n 1 我怎样才能在matlab中实现这一点 编辑 该矩阵中的每一行都是由 160x
  • D3 径向树状图仅显示部分

    我根据 Mike Bostock 在 Observable 中的示例创建了下面的代码 我知道它与原始 d3 javascript 不同 https observablehq com d3 radial dendrogram 然而 它 仅当我
  • ios编程:使用线程将多个图像添加到库中

    在 Xcode 中 当我尝试添加超过 5 张图片到我的图书馆 它给了我以下错误 Error Domain ALAssetsLibraryErrorDomain Code 3301 Write busy UserInfo 0xa706aa0
  • 如何在 Today 扩展中发送和接收数据

    我想开发一个具有通知中心小部件的 iOS 应用程序 但我不知道应该如何在视图控制器和今日扩展之间发送和接收数据 传递数据 我尝试使用结构 但它不起作用 而且我也使用了应用程序组 但我不想使用这种方法 let shared NSUserDef
  • 以编程方式禁用 Android 中软输入键盘上的语音转文本按钮(麦克风)

    先谢谢您的帮助 我正在开发一个用于研究目的的 Android 应用程序 需要禁用软输入键盘上的语音到文本按钮 其原因是由于我正在开发的应用程序使用麦克风而出现并发问题 我知道对于一般应用程序来说 禁用按键通常被认为是不可能的 因为用户可能会
  • 使用 Spring Reactor 时为什么要使用断路器和隔板?

    请帮助我找到断路器和隔板模式在 Spring Reactor 应用程序中有用的原因 由于 Reactor 中的操作将是非阻塞的 并且这两种模式旨在节省对资源 主要是线程 的潜在影响 因此在什么情况下我可以使 Spring Reactor 应
  • 如何“独立”使用PolicyHttpMessageHandler?

    我只是想创建一个简单的测试 我使用DelegateHandlers实例化一个HttpClient无需带Asp net Core包 我有 2 个删除处理程序 ThrottlingDelegatingHandler PolicyHttpMess