Как включить \ r \ n при попытке выполнить запрос Get? - PullRequest
0 голосов
/ 13 июля 2020

Один из серверов, который я пытаюсь запросить, имеет \ r \ n в строке. Эти новые строки хорошо видны, когда вы пытаетесь получить запрос через браузер или такие инструменты, как Postman. Однако когда я пытаюсь получить строку программно по коду, я не вижу \ r \ n. Почему это возможно или вообще возможно получить \ r \ n?

public async Task<TResponse> GetAsync(string uri)
{
    var httpClient = new HttpClient();
    var content = await httpClient.GetStringAsync(uri);
    return JsonConvert.DeserializeObject<TResponse>(content);
}

Ответ должен выглядеть так, в котором необходимо сохранить форматирование: введите описание изображения здесь

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Нашел способ сохранить возврат каретки, используя HttpUtility.JavaScriptStringEncode в ответе, который я получаю.

https://docs.microsoft.com/en-us/dotnet/api/system.web.httputility.javascriptstringencode?view=netcore-3.1

0 голосов
/ 13 июля 2020

Если ваш браузер или почтальон позволяют вам видеть «новые строки», вероятно, это потому, что они заставляют вас видеть отформатированный json. Чтобы убедиться в этом, попробуйте использовать инструмент более низкого уровня, например curl или wget.

Если с curl или wget вы увидите json без новых строк, то это просто вопрос формата. Все, что вам нужно сделать, это десериализовать (как вы уже делаете) и повторно сериализовать объект с помощью

JsonConvert.SerializeObject(deserializedObject, Formatting.Indented)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...