Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpClient.SendAsyc()在生产中返回禁止,但在调试中返回OK_C#_Dotnet Httpclient - Fatal编程技术网

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核心,是什么版本?响应消息是否包含任何提示?请查看此帖子: