HttpWebRequest - Как получить ответ сервера при ошибке 429?
При посылке запроса с айпи тор в браузере - видно что ответ на запрос с кодом 429, но при этом в ответе код страницы с капчей, которую надо решить.
При посылке запроса через HttpWebRequest:
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
//попытка прочитать ответ, из-за кода 429 сюда не заходит
}
из-за ошибки не могу прочитать страницу с капчей Как можно получить тело ответа сервера при ошибке 429 ?
Ответы (1 шт):
Есть миллион ответов на всех языках StackOverflow, поясняющих что HttpWebRequest устарел.
Но я еще раз поясню: HttpWebRequest не рекомендуется для новой разработки, об этом написано в его документации.
Мы не рекомендуем использовать
HttpWebRequestдля новой разработки. Вместо этого используйтеSystem.Net.Http.HttpClientкласс.
private static readonly HttpClient client = new HttpClient();
private async Task<string> GetPageAsync(string url)
{
using var response = await client.GetAsync(url);
if (!response.IsSuccessStatusCode) // диагностика
{
Console.WriteLine($"{url} - {(int)response.StatusCode} {response.ReasonPhrase}");
}
return await response.Content.ReadAsStringAsync();
}
Использовать
string html = await GetPageAsync("https://ru.stackoverflow.com");
Если не знаете, что такое async/await - вам сюда.