Visual Studio C # HttpClient GET Запрос неправильно отображает строки текстового файла

#c# #httpclient

#c# #httpclient

Вопрос:

У меня возникла проблема с HttpClient Visual Studio C #.

Я пытался сделать GetStringAsync запрос с HttpClient помощью, но ответ отформатирован не так, как ожидалось.

Запрос похож на phpfile.php?readmode=yes, он отображает ответ текстового файла, но он не отформатирован так, как показано ниже:

 hello
hello
  

но он отображает:

 hellohello
  

Я искал в Интернете почти 2 часа, и я все еще в замешательстве, вот код

 string url = URL;
var responseString = await client.GetStringAsync(url);
  

а затем я добавляю его в текстовое поле (поскольку это какой-то клиент msg):

 f1.msglog.Text = f1.msglog.Text   Environment.NewLine   responseString.ToString();
  

Комментарии:

1. Проблема заключается в том, что создает эту строку (т.Е. Код PHP). Посмотрите туда.

2. @IanKemp Код работал, когда я использовал WebRequest с программой чтения потоков, поэтому это не ошибка php-скрипта, в fiddler формат правильный, просто HttpClient неправильно отображает его. P.S Я переключился на HttpClient, потому что он более надежный и асинхронный, поэтому клиент не зависает

3. Тогда почему вы изначально не включили эту информацию в свой вопрос? Почему вы не включили скриншот трассировки скрипача? Помогите нам помочь вам, предоставив всю необходимую информацию, а не только фрагменты.

4. Можете ли вы объяснить, что вы подразумеваете под «отображением»? Где вы отображаете текст и изменилось ли что-нибудь в нем с тех пор, как он работал?

Ответ №1:

Это может быть проблемой с различными типами окончаний строк. Попробуйте стандартизировать окончания строк с помощью этого:

 responseString.Replace("rn", "n").Replace("r", "n").Replace("n", Environment.NewLine)
  

Кстати, не вызывайте toString . Это уже была строка, поэтому вызов toString ничего не делает.