问题标签 [delegatinghandler]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5337 浏览

c# - C# HttpClient 刷新令牌策略

由于 Microsoft建议创建HttpClient一次并在程序的整个生命周期中重复使用,我想知道如何更新DefaultRequestHeaders,例如,令牌已过期并且需要刷新。

DefaultRequestHeaders更多的是不是线程安全的(据我所知),并且在那里定义的标头列表由所有潜在的待处理请求共享。带有新标记Clear()的列表和标题似乎不是明智的做法。Add()


更新

更准确地说,我不想/不需要为每个请求更改请求标头。仅当我获得 HTTP 401 状态代码时。

0 投票
2 回答
1717 浏览

c# - 捕获对 Web Api 2.0 的所有请求,无论是否映射

我有一个正在运行的 Web API 2.0 localhost:4512,我想拦截对域的所有请求,localhost:4512无论它们是否由特定路由处理。例如,我想捕获对localhost:4512/abc.dfsadalocalhost:4512/meh/abc.js

我已经用 DelegatingHandler 尝试过这个,但不幸的是,这只会拦截对已处理路由的请求:

在 WebConfig.cs 中:

0 投票
1 回答
187 浏览

c# - 我们何时以及为什么应该使用 WebApi Action Filter 和DelegationHandler?

我在一个需要交叉错误处理和响应操作的项目中。我发现有FiltersDelegating Handlers,但我不知道这两者之间的区别,有人可以帮我解决这个问题吗?

0 投票
0 回答
14 浏览

asp.net-web-api2 - 如何根据 webapiconfig.cs 文件中的环境配置消息处理程序?

我正在使用 Aspnet webapi2。我想根据环境注册一个消息处理程序。你能告诉我如何根据环境进行配置。

0 投票
0 回答
167 浏览

c# - 来自 DelegatingHandler 的“无法多次发送相同的请求消息”错误

我不确定这段代码有什么问题。有人可以帮助我为什么在运行这段代码时看到错误吗?

这是我的处理程序代码:

当我运行我的 UT 时,我看到错误“System.InvalidOperationException:请求消息已发送。不能多次发送相同的请求消息。”</p>

0 投票
1 回答
1331 浏览

c# - 使用 DelegatingHandler 实现 HTTP 请求重试逻辑

我正在尝试使用 DelegatingHandler 实现重试,但我也想设置 HttpCompletionOption。

我的代码如下所示:

正如您所看到的,没有通过继承 DelegatingHandler 来设置 HttpCompletionOption 的选项,我尝试创建 CustomDelegatinghandler,但在这种情况下,我无法像在 main 方法中使用的那样使用new RetryHandler(new HttpClientHandler()) 。

有没有办法实现具有/支持以下签名的 DelegatingHandler(或自定义)?

任何帮助,将不胜感激。谢谢,

0 投票
1 回答
347 浏览

c# - 循环中的 DelegatingHandler 和 HttpClient

我正在尝试HttpClient.GetAsync循环执行。
根据Microsoft Doc,建议使用 1 个HttpClient.

我得到的方式HttpClient

GetAsync第一次正常运行,但是当我重用httpClient引用时,出现错误:The 'DelegatingHandler' list is invalid because the property 'InnerHandler' of 'HttpClientTelemetryHandler' is not null.

当我每次都尝试在循环中创建一个新实例时Handler,它工作正常。HttpClient

现在这是一个利益冲突。我应该每次在循环中创建一个新实例,还是有任何其他方法可以做到这一点,这是正确的方法。

附加信息:我用来创建HttpClientis的自定义库.Net Standard 2.0和调用 HttpClient 的客户端应用程序 is .Net Core 2.1

感谢任何帮助。

谢谢。

0 投票
0 回答
430 浏览

c# - 为什么 IHttpContextAccessor.HttpContext 有时为空?

使用 .Net Core 2.2,我使用 HttpClient 调用 API,以及 Http 消息处理程序。消息处理程序注入IHttpContextAccessor,但该对象有时包含一个HttpContext为空的属性 - 我不明白为什么它会为空。

这是启动时的服务注册:

以及 HttpContext 有时为空的令牌处理程序实现。

_context.HttpContext当它只是被注入时,什么可能导致它为空?

0 投票
0 回答
42 浏览

asp.net-core - 如何在 .net 核心中使用 DelegatingHandler 从 asp.net 核心中的响应中删除属性?

如何在 .net 核心中使用 DelegatingHandler 从 asp.net 核心中的响应中删除属性?

如果登录用户不是管理员,那么如何从 API 的响应中删除某些属性?

0 投票
1 回答
166 浏览

c# - 验证我的 DelegatingHandler 是否已添加到 IHttpClientBuilder

我有代码向客户端添加一个命名HttpClientServiceCollection添加一个DelegatingHandler。示例代码:

编写单元测试时,如何验证DelegatingHandler添加的实现是MyDelegatingHanlder