gpt4 book ai didi

c# - HttpClient AutomaticDecompression 使用 gzip,而不是 deflate

转载 作者:行者123 更新时间:2023-12-04 13:57:46 28 4
gpt4 key购买 nike

同时使用 httpbinPostman Echo (实际上,这似乎是相同的服务),我能够通过他们的测试端点成功获得 gzip 响应,如下所示:

var cli = new HttpClient(new HttpClientHandler
{
AutomaticDecompression = DecompressionMethods.GZip
});
await cli.GetAsync("https://postman-echo.com/gzip");

但是如果我对他们的 deflate 测试端点做同样的事情:
var cli = new HttpClient(new HttpClientHandler
{
AutomaticDecompression = DecompressionMethods.Deflate
});
await cli.GetAsync("https://postman-echo.com/deflate");

我收到以下异常/内部异常,从 System.Net.Http.HttpContent.LoadIntoBufferAsync 抛出:
----> System.Net.Http.HttpRequestException : Error while copying content to a stream.
----> System.IO.IOException : The read operation failed, see inner exception.
----> System.Net.Http.WinHttpException : Operation aborted

我可以在 .NET Core 和 .NET Framework 中重现。请注意,这些都可以在浏览器中正常工作:

https://postman-echo.com/gzip

https://postman-echo.com/deflate

很容易认为这是测试服务的错误,但由于浏览器处理得很好,其他平台上的库也是如此(他们的测试套件很广泛,但他们不是 .NET 人员),我真的不确定哪个指向手指的方式。那个异常到底告诉我什么?

最佳答案

不知道它是否仍然相关,但这确实是一个 bug在 .net 中,这是最近才出现的 fixed在.net 6.

关于c# - HttpClient AutomaticDecompression 使用 gzip,而不是 deflate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58345905/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com