.NET 5 HttpClient 无法获取 html 内容页面 - http 500

Posted

技术标签:

【中文标题】.NET 5 HttpClient 无法获取 html 内容页面 - http 500【英文标题】:.NET 5 HttpClient cannot GET html content page - http 500 【发布时间】:2021-10-15 17:55:13 【问题描述】:

我正在尝试使用 HttpClient 来获取页面的 html 内容。 尝试我用谷歌 URL 测试的方法,它正在工作,我收到了我的 html 页面的内容。 但是有了我想要的 url,就不可能得到内容。我每次都有一个返回码 http 500。 问题是,我可以使用 POSTMAN 甚至使用 python 获取文件的内容,但使用 .NET5 是不可能的

有人有想法吗? 提前谢谢你。

        private static readonly HttpClient client = new HttpClient();

        static async Task Main(string[] args)
        
            try
            
                HttpResponseMessage response = await client.GetAsync("https://www.naeu.playblackdesert.com/fr-FR/Adventure/Profile?profileTarget=tbXSK7e39Sb3U3yPi7UDjjSeXLzr0HZbr%2bvZQYvtEENKNEz6zPFwtpkvp0pIir%2fk%2fWk7JFLXKICyzqEBwajIrTCHQPFH4MRyBkor2fVeMAb8hNGoasy8HtBiHlcoWN1xRsmmYjVt6WbJg2ocvr%2fbsQk2sbjKeD5a7VqgreAH0ztzMvoFqk7Z%2fZ7L4USyu5Up");
                response.EnsureSuccessStatusCode();
                string responseBody = await response.Content.ReadAsStringAsync();

                Console.WriteLine(responseBody);
            

            catch(HttpRequestException e)
            
                Console.WriteLine("\nException Caught!");   
                Console.WriteLine("Message :0 ",e.Message);
            
        

【问题讨论】:

【参考方案1】:

像这样指定用户代理。

client.DefaultRequestHeaders.Add("User-Agent", "C# console program");

在 HttpResponseMessage response = await client.GetAsync 行之前

【讨论】:

我用你推荐的值修改了标题,它可以工作 :) 但是如果我使用 API,我应该为我的“用户代理”设置什么值? 查看这里的文档developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent 一些服务器根据用户代理值提供不同的页面(数据),有些则没有。如果您不关心并且对服务器现在为您提供的内容感到满意,则可以保持原样。 @Kujima 如果这有效并且是答案,您能否将其标记为答案。谢谢

以上是关于.NET 5 HttpClient 无法获取 html 内容页面 - http 500的主要内容,如果未能解决你的问题,请参考以下文章

HttpClient调用.net发布的带Windows NTML验证的webservice

Java如何获取创蓝253短信验证码?

[通用 Windows 平台] 中的 System.Net.Http.HttpClient 无法正常工作

从 HttpClient SendAsync 请求获取响应时出现无法解释的超时和延迟

在 c# (.net core) 中使用 httpclient 时无法建立 SSL 连接,但在 Postman 和 Browser 中有效

HttpClient 和 HttpClientHandler 是不是必须在请求之间进行处理? [关闭]