.NetCore HttpClient向Accept Encoding添加了不必要的项

本文关键字:不必要 添加 Encoding HttpClient Accept NetCore | 更新日期: 2023-09-27 17:58:23

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

Accept-Encoding: identity, gzip, deflate

而不是

Accept-Encoding: identity

我试着重置标题,删除它们,但在我调用之前,它们既不存在于客户端上,也不存在于请求中

client.SendAsync(request); 

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

.NetCore HttpClient向Accept Encoding添加了不必要的项

HttpClientHandler.AutomaticDecompression正在添加标头。当您关闭自动解压缩时,"Accept Encoding"标头将为空。

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总是由另一端接收。