HttpClient C#. Как получить чистый html?

Мне нужно парсить JSON из ответа на POST запрос, но полученный код страницы не получаеся использовать из-за спец. символов - \n \t. Как можно от них избавится? Изменение кодировки не помогло. Возможно надо менять заголовки запроса?

Код получения html

var encodedContent = new FormUrlEncodedContent(parameters);
        var h = Client.DefaultRequestHeaders.TransferEncoding;
        var response = await Client.PostAsync(Uri, encodedContent);
        if (response.StatusCode == HttpStatusCode.OK)
        {
              return  await response.Content.ReadAsStringAsync();
        }
        return null;

Ответ:

g = "\n<!DOCTYPE HTML>\n<head>\n    <meta name=\"viewport\" content=\"width=device-width, height=device-height, initial-scale=1.0\">\n    <link rel=\"shortcut icon\" href=\"https://******.ru/favicon.ico\" type=\"image/x-icon\">\n    <link rel=\"icon\" h...

В ответе на POST запрос есть скрипт с json строкой - <script> window.CData = [{\"date\":\"2021-08-02\",\"title\":{\"2\":{\"name\":[{\"id\":\"495364\",...(он очень большой, весь копировать не буду) и проблема в том что десериализовать его не получается, подозреваю что из-за знака '\' перед кавычками.


Ответы (1 шт):

Автор решения: Uranus

Избавиться от переносов строк нельзя ни настройкой HttpClient, ни добавлением заголовков в запрос. HttpClient должен отдавать ровно то, что получил от сервера. А сервер не ожидает что переносы строк кому-то могут помешать, и обычно не дает опций для их отключения.

Помимо простейшего совета удалить переносы строк самому с помощью метода String.Replace, могу так же посоветовать не парсить HTML вручную, а использовать Html Agiligy Pack.

→ Ссылка