[英]HttpClient AutomaticDecompression working with gzip, not deflate
使用httpbin和Postman 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/deflate
很容易認為這是測試服務的一個錯誤,但由於瀏覽器可以很好地處理它,其他平台上的庫也是如此(他們的測試套件很廣泛,但他們不是 .NET 家伙),我真的不確定哪種方式指向手指。 這個異常到底告訴我什么?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.