httpclient 在公司代理中无法从 .net6 工作

Posted

技术标签:

【中文标题】httpclient 在公司代理中无法从 .net6 工作【英文标题】:httpclient is not working from .net6 in corporate proxy 【发布时间】:2022-01-19 05:15:04 【问题描述】:

我在下面尝试过-

尝试使用代理和凭据来创建 httpclient 对象。 检查代码在 *** 外部执行而不在 *** 内部执行。 尝试从此 repo 下载代码并尝试在我的 office 代理下复制它不适用于 .net6 示例。它一直适用于 .net5 及以下版本。 .net6 示例我指的是 AspNetCore.Docs/aspnetcore/fundamentals/http-requests/samples/6.x/HttpRequestsConsoleSample/ 尝试在此 repo on .net6 示例的示例代码中降级 Microsoft.Extensions.Http 包(从 6.0.0 到 2.1.1 以及介于两者之间的所有内容)。 不管我做了什么 .net6 httpclient.sendAsync 方法调用总是导致以下错误。有人可以帮忙吗?

System.Net.Http.HttpRequestException: '发送请求时出错。'

IOException: 无法从传输连接中读取数据:已建立的连接已被主机中的软件中止..

SocketException: 已建立的连接被主机中的软件中止。

【问题讨论】:

嗨@Saiteja Samala,我已经使用AspNetCore.Docs/aspnetcore/fundamentals/http-requests/samples/6.x/HttpRequestsConsoleSample/ 测试了代码。它运作良好。也许您需要使用 Fiddler 来捕获请求并检查出错的位置。 嗨@Rena 是的,上面链接中的代码在 *** 之外也适用于我。当我在 *** 内部时,问题在于 .net5 中的类似代码(以下是 url)对内部和外部 *** 都有效,而 .net6 则不然。你能帮我解决我在这里缺少的东西吗? github.com/dotnet/AspNetCore.Docs/tree/main/aspnetcore/… 【参考方案1】:

我继续向项目 (.NET 6) 添加了一个 runtimeconfig.template.json 文件,其中包含以下内容:


  "configProperties": 
    "System.Net.DisableIPv6": "true"
  

这解决了我的问题。

来源:https://github.com/dotnet/runtime/issues/62825

【讨论】:

以上是关于httpclient 在公司代理中无法从 .net6 工作的主要内容,如果未能解决你的问题,请参考以下文章

在 .net 4.5 中尝试使用 HttpClient 使 cookie 无法响应

使用带有 .NET 4.5 HttpClient 的代理

.Net Core 3.0后台使用httpclient请求网络网页和图片_使用Core3.0做一个简单的代理服务器

无法使用 HttpClient 对 ASP.NET Web Api 服务进行身份验证

csharp 使用基本身份验证和代理的简单C#.NET 4.5 HTTPClient请求

httpclient:Ip 代理