.Net Core HttpClient 将不必要的项目添加到 Accept-Encoding

.NetCore HttpClient adds unnecessary items to Accept-Encoding

我正在尝试将项目迁移到 .Net Core,并且我有一个使用 HttpWebRequest 的实现。现在在 .Net Core 上,我设法更改了代码,但是当我通过 Fiddler 检查原始请求时,我的 Accept-Encoding 是

Accept-Encoding: identity, gzip, deflate

而不是

Accept-Encoding: identity

我尝试重置 header 以删除它们,但在我调用

之前,它们在客户端上不存在,也没有请求
client.SendAsync(request); 

如果由于某种原因这些问题由于限制而无法修复,是否有创建原始 HTTP 请求的方法?

HttpClientHandler.AutomaticDecompression是加上header.When你关闭自动解压,它会留下'Accept-Encoding'headers空白。

var handler = new HttpClientHandler();
handler.AutomaticDecompression = System.Net.DecompressionMethods.None;
var client = new HttpClient(handler);

var result = client.GetStringAsync("http://headers.cloxy.net/request.php");

Fiddler 验证:

GET http://headers.cloxy.net/request.php HTTP/1.1
Connection: Keep-Alive
Host: headers.cloxy.net

一个有趣的事实是,我的 ISP 通过透明代理强制我的流量,无论我的请求如何,另一端总是收到 Accept-Encoding: gzip