【发布时间】:2020-09-16 18:44:04
【问题描述】:
我尝试使用 HttpClient (C#) 读取一些网页,但在某些页面上我得到 响应状态代码不表示成功:404(没有此类文件)?其他工作就好了。
这是代码示例:
static readonly HttpClient client = new HttpClient();
private static async void GetHtmlAsync()
{
var url = "https://www.yourwebpage.com";
try
{
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
string responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
catch (HttpRequestException e)
{
Console.WriteLine("\nException Caught!");
Console.WriteLine("Message :{0} ", e.Message);
}
}
也尝试将Header添加到客户端,但没有成功:
client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:80.0) Gecko/20100101 Firefox/80.0");
client.DefaultRequestHeaders.Add("Accept", text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8");
client.DefaultRequestHeaders.Add("Accept-Encoding", "gzip, deflate, br");
client.DefaultRequestHeaders.Add("Accept-Language", "en-US,en;q=0.5");
client.DefaultRequestHeaders.Add("Connection", "keep-alive");
client.DefaultRequestHeaders.Add("Host", "www.betexplorer.com");
client.DefaultRequestHeaders.Add("Upgrade-Insecure-Requests", "1");
解决方案:
我使用 RestSharp 库解决了这个问题。
【问题讨论】:
-
发布您的代码。
-
在您请求的页面上查看您的代码和 hqve 或 detqils 会很有帮助。
-
这通常意味着您使用的 URL 错误。仅此而已。你想让我们说什么?我们不知道您尝试了哪些 URL,或者您如何在代码中使用它们,因此我们无法指出任何错误
-
顺便说一句,写一个声明,然后在最后加上一个问号(就像你在这里所做的那样)不会神奇地将它变成一个真正的问题。你所做的只是告诉我们你的烦恼。您没有提出任何问题或提供任何我们可以用来帮助您的信息。
标签: c# web-scraping httpclient