#c# #httpclient #.net-5 #html-content-extraction
Вопрос:
Я пытаюсь использовать HttpClient для получения html-содержимого страницы. чтобы попробовать метод, который я протестировал с помощью URL-адреса Google, и он работает, я получаю содержимое своей 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+vZQYvtEENKNEz6zPFwtpkvp0pIir/k/Wk7JFLXKICyzqEBwajIrTCHQPFH4MRyBkor2fVeMAb8hNGoasy8HtBiHlcoWN1xRsmmYjVt6WbJg2ocvr/bsQk2sbjKeD5a7VqgreAH0ztzMvoFqk7Z/Z7L4USyu5Up");
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 ответ = ожидание клиента.GetAsync
Комментарии:
1. Я изменил заголовок со значением, которое вы рекомендовали, и это работает 🙂 Но если я использую API, что я должен указать в качестве значения для своего «Агента пользователя» ?
2. смотрите документацию здесь developer.mozilla.org/en-US/docs/Web/HTTP/Headers/User-Agent некоторые серверы обслуживают разные страницы (данные) в зависимости от значения агента пользователя, некоторые-нет. Было бы неплохо оставить все как есть, если вам все равно, и вы довольны тем, что сервер дает вам сейчас.
3. @Kujima если это сработало и является ответом, не могли бы вы отметить его как ответ, пожалуйста. Спасибо