簡體   English   中英

HttpClient AutomaticDecompression 與 gzip 一起使用,而不是放氣

[英]HttpClient AutomaticDecompression working with gzip, not deflate

使用httpbinPostman Echo (這似乎是相同的服務,有效地),我能夠通過他們的測試端點成功地獲得 gzip 的響應,如下所示:

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

但是,如果我對他們的放氣測試端點做同樣的事情:

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 框架中重現。 請注意,這些都可以在瀏覽器中正常工作:

https://postman-echo.com/gzip

https://postman-echo.com/deflate

很容易認為這是測試服務的一個錯誤,但由於瀏覽器可以很好地處理它,其他平台上的庫也是如此(他們的測試套件很廣泛,但他們不是 .NET 家伙),我真的不確定哪種方式指向手指。 這個異常到底告訴我什么?

不知道它是否仍然相關,但這確實是 .net 中的一個錯誤,最近才在 .net 6 中修復

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM