问题标签 [httpclienthandler]

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 投票
0 回答
285 浏览

c# - Xamarin.Forms:默认而不是 AndroidClientHandler 作为 HttpClient 实现

我在现有的Xamarin.Forms 应用程序上工作,我们需要将API 调用集成到外部提供程序。

为此,我们使用我客户的自定义 HttpClient 库

到目前为止,Android HttpClient设置为AndroidClientHandler.

但是在对提供者的 API 进行基本调用后,我们会得到一个“ 400 - bad request ”的答案:

如果我们将Android HttpClient设置为default,一切正常。

但似乎使用 AndroidClientHandler 是更好的选择。那么,您对调查和确定与 AndroidClientHandler 相关的问题有什么建议吗?

0 投票
0 回答
155 浏览

httpclient - dotnet 5 如何在 HttpClient 中使用 Windows 身份验证凭据

.net 5 中没有发生在 .net core 3.1 中的问题 Windows 身份验证未传递给 HttpClient

在 .net core 3.1 上工作的相同代码:

0 投票
0 回答
226 浏览

c# - 如何从 HttpClientHandler 实现 ServerCertificateCustomValidationCallback

我正在尝试为类ServerCertificateCustomValidationCallback的实例实现一种方法HttpClientHandler。我在这里不知所措,因为我不知道要验证什么。我需要向服务器发送证书(我已经这样做了),并验证服务器发送给我的证书。我已经看到了这个这个实现,它们告诉我将收到的证书与已知值进行比较。我不确定如何获得这个已知值,我知道我在LocalMachine 的 Trusted root store中安装了一个受信任的证书,我是否应该期望链中的证书包含与我安装的证书相同的哈希?

这是我到目前为止所拥有的:

0 投票
0 回答
46 浏览

c# - 使用 httpclientfactory 而不是 httpclient。还有在使用 httpclientfactory 时如何使用 httpclienthandler

需要使用 httpclientfactory 的等效代码

0 投票
0 回答
38 浏览

c# - c# 将 CookieContainer 添加到 HttpClientHandler

我有以下用 c# 编写的函数:

其中 cookie 直接添加到标题中。现在我试图将其拆分以将其添加到 CookieContainer 中。源代码如下所示:

第一个函数将返回状态“OK”。第二个函数将返回状态“未授权”。

是什么导致了这个问题?我是否设置了 CookieContainer 错误?

0 投票
1 回答
58 浏览

c# - 多个 HttpClientHandler 实例超时错误

我们编写了一个与外部 API 连接的应用程序。您需要有一个 Token 才能与此 api 进行通信。每个用户的令牌必须是唯一的。要获取令牌,我们需要使用属于该用户的客户端证书调用端点。

我们通过对所有 API 请求使用 1 个静态 HttpClientHandler 实例来实现这一点。每个请求都使用给定的静态处理程序设置一个 HttpClient;并且只有客户端将被释放,处理程序将保持活动状态。但是要获得token;我们需要将证书添加到处理程序。因此在获取token时;我们使用一个新的 HttpClientHandler 实例来获取令牌。获得令牌后,我们立即处理客户端和处理程序实例。

现在很多电话都因以下错误而失败:

连接尝试失败,因为连接方在一段时间后没有正确响应,或者连接失败,因为连接的主机没有响应 [ip]:443

大多数错误发生在我们获取 Token 时。但有时正常的 API 调用会因同样的错误而失败。

对方也研究过这个问题;他们给我们的最新结论是:在请求结束时,我们保持连接处于活动状态;因此该端口是为该连接保留的。但是,有时会尝试从我们这边使用相同的端口设置一个新请求(我猜是新连接)。有防火墙阻止/丢弃这个新请求;因为这个端口已经被使用了。这就是为什么我们以这个超时错误结束。

嗯,这是有道理的;我们无法控制连接使用的端口。但是为什么会这样呢?我有这样的理论,即问题在于静态处理程序(支持 10 个并行连接并保持此连接处于非活动状态,但仍处于活动状态)和可能认为端口空闲的第二个(或更多)其他处理程序的组合(因为那里不是此端口上的活动)可能会尝试建立与该端口的连接。但这只是一个理论;我找不到这方面的证据。

有没有人可以证实这个理论?或者也许给出其他解释为什么会出现这个问题?和/或是否有针对此问题的解决方案/解决方法?

0 投票
1 回答
53 浏览

ssl - httpClientHandler.ServerCertificateCustomValidationCallback 从未执行

我在 VS 2022 中使用 Xamarin,针对 Android 的 .NetStanderd2.1 类库。

我想实现一个带有自定义 SSL 证书验证的 HttpCient。

这是我的代码:

(为易读性做了一些准备)。

我将 Xamarin HttpClient 切换到托管 在此处输入图像描述

我了解禁用 SSL 证书验证的安全隐患,这是在开发环境中使用自签名证书。

如果可能的话,我想使用 TLS 1.2,但接下来是这个问题。

当前的问题是,自定义 SSL 证书验证(返回 true;)在

永远不会被执行。

我究竟做错了什么?

0 投票
0 回答
37 浏览

c# - 使用 C# HttpClient 时检测“是否需要客户端证书”

我的客户端应用程序使用 HttpClient 调用 Azure 应用服务,如下所示:

如果我可以检测到页面需要它,我只想添加客户端证书。例如,如果您将 URL 粘贴到需要客户端证书的浏览器中,则浏览器会提供用户可以选择的证书选项。我的应用程序中也有一个证书列表,但只想在服务器需要时显示它。

我可以致电服务器并返回 403,然后提供我的列表。但是,出于其他身份验证原因,它可能是 403,因此会产生误导。

我想我在问 - “浏览器如何检测 URL 需要客户端证书”

谢谢

0 投票
0 回答
71 浏览

c# - 带有 HttpClientHandler ClientCertificate 的 HttpClient 在 c# 中不起作用

我需要将数据发送到需要证书授权的 webapi。这是使用WebRequestHandler在 .net 4.5.2 上运行的,但是当我尝试升级到 dotnet 5 并使用HttpClientHandler时 出现错误:

.net 4.5.2 代码

.net 5 代码:

我的代码可能有什么问题?