C# HttpClient.SendAsyc()在生产中返回禁止,但在调试中返回OK
下面是我正在使用的代码。对于这个问题,它做了轻微的修改C# HttpClient.SendAsyc()在生产中返回禁止,但在调试中返回OK,c#,dotnet-httpclient,C#,Dotnet Httpclient,下面是我正在使用的代码。对于这个问题,它做了轻微的修改 var sourcebrandUrl = "https://www.electrolux.se/support/user-manuals/?q=EER77MBM"; var request = new HttpRequestMessage(HttpMethod.Get, sourcebrandUrl); request.Headers.UserAgent.ParseAdd("Mozilla/
var sourcebrandUrl = "https://www.electrolux.se/support/user-manuals/?q=EER77MBM";
var request = new HttpRequestMessage(HttpMethod.Get, sourcebrandUrl);
request.Headers.UserAgent.ParseAdd("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.142 Safari/537.36");
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("text/html"));
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("*/*",0.8));
request.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue("en-GB",0.9));
request.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue("en-US", 0.9));
request.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue("en", 0.8));
request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("gzip"));
request.Headers.AcceptEncoding.Add(new StringWithQualityHeaderValue("deflate"));
using (HttpResponseMessage response = await _httpClient.SendAsync(request))
{
HtmlContent = await response.Content.ReadAsStringAsync();
}
有趣的是,当我尝试调试时,响应是正常的,但是当我在生产环境中作为生产构建运行时,响应是“禁止的”。你能告诉我我做错了什么吗
另外,在基类中,我在构造函数中调用以下内容
_httpClient.DefaultRequestHeaders.Accept.Clear()代码>
ServicePointManager.SecurityProtocol=SecurityProtocolType.Tls | SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12代码>
---------编辑---------
我发现了问题。
我还必须使用以下命令
request.Headers.AcceptEncoding.Add(新StringWithQualityHeaderValue(“br”))代码>
我仍然不知道为什么它以前在本地调试模式下工作,但在docker容器中运行时却不在生产模式下工作
如果有人能解释一下,我将不胜感激 想一想,生产配置是否启用了Cors?谢谢Trevor。虽然cors问题与此问题无关,但它帮助我解决了另一个问题。这是.NET或.NET核心,是什么版本?响应消息是否包含任何提示?请查看此帖子:想一想,生产配置是否启用了Cors?谢谢Trevor。虽然cors问题与此问题无关,但它帮助我解决了另一个问题。这是.NET或.NET核心,是什么版本?响应消息是否包含任何提示?请查看此帖子: