Пытаюсь получить HTML страницы: https://minsk.btrans.by/avtobus/1%d1%82 или же https://minsk.btrans.by/avtobus/1т через HttpClient.GetAsync, но в ресультате пустая строка, хотя при попытке получить HTML с данной страницы:https://minsk.btrans.by/avtobus/1 все удается
HTMLAgilityPack пробовал, но результат тот: не парсит контретно с этой страницы
Код:
using System;
using System.Net;
using System.Net.Http;
using System.Text;
namespace TestProject
{
class Program
{
static void Main(string[] args)
{
string url = "https://minsk.btrans.by/avtobus/1%d1%82";
using (HttpClient client = new HttpClient())
{
using (HttpResponseMessage response = client.GetAsync(url).Result)
{
using (HttpContent content = response.Content)
{
string result = content.ReadAsStringAsync().Result;
Console.WriteLine(result);
}
}
}
}
}
}
client.GetAsync(url).Result- серьезно? Забудьте про написание сразу запроса кодом! Займитесь анализом сайта, поймите как он устроен, как у него появляются данные, от куда он их берет, попробуйте составить запрос в любом конструкторе (Postman например), а вот когда получите в конструкторе готовый, рабочий запрос, без кучи лишнего, тогда уже и думайте про написание C# кода. Почитайте это... – EvgeniyZ Jun 15 '21 at 19:21Console.WriteLine(response);поможет узнать, что ответил сервер – aepot Jun 15 '21 at 19:53HttpClientоправляет запрос/avtobus/1%D1%82, и получает 302 редирект на/avtobus/1%d1%82, но не следует ему. Проблема кроется внутри классаUri, но я не могу понять, как ее побороть. @EvgeniyZ задача интересная, есть идеи? Как бы я не пытался подсунуть разные данные даже через рефлексию в инстансUri, у меня ничего не вышло (замена поля_stringпортитUri). Если кратко,Uriпарсит1%d1%82как1тпри создании инстанса, а в запрос отдает/avtobus/1%D1%82. Какая-то фишка дотнета, побороть которую мне не удалось. – aepot Jun 15 '21 at 21:01HttpUtility.UrlPathEncode("https://minsk.btrans.by/avtobus/15д");, выдаст строку в нижнем регистре, ноUriпоправит. Попробовалnew Uri(address, true)(хоть он устарел, но всеж), передал ему результатUrlPathEncode, ноUriне все поля заполнил. Пробовал через билдер, не дало результат. – EvgeniyZ Jun 16 '21 at 00:05