Ответ HttpResponse String имеет дополнительное `" `и не распознает` \ n` - PullRequest
0 голосов
/ 21 мая 2019

У меня есть класс, который реализует интерфейс Route (пакетный спарк), который должен возвращать строку в функции handle.Когда я конвертирую ответ в строку, у меня есть два дополнительных " в начале и конце моей строки, а \n не распознается как 1 символ в моей строке, а как 2. Кто-нибудь знает исправление?

Это код, а response является экземпляром HttpResponse:

Assert.assertEquals(200, response.getStatusLine().getStatusCode());
String output = EntityUtils.toString(response.getEntity())

Следующее утверждение не выполняется

Assert.assertEquals(10, output.length());
Java.lang.AssertionError: 
Expected :10
Actual   :13

И согласно System.out вывод

"123456789\n"

Хотя это должно быть 123456789 и \n в конце, но я не верю, что \n должно отображаться в System.out.print()

Ответы [ 3 ]

0 голосов
/ 21 мая 2019

Этот вопрос и ответы могут помочь: HttpClientErrorException 400 null с использованием RestTemplate в microServices

В основном я рекомендую использовать стороннюю библиотеку, которая обрабатывает запросы / ответы http для васкопия соответствующей части моего ответа на этот вопрос:
Вы можете использовать стороннюю библиотеку, которая отправляет запрос Http и обрабатывает ответ.Одним из известных продуктов будет Apache commons HTTPClient: HttpClient javadoc , HttpClient Maven .Существует гораздо менее известный, но гораздо более простой HTTPClient (часть написанной мной библиотеки MgntUtils с открытым исходным кодом): MgntUtils HttpClient javadoc , MgntUtils maven артефакт , MgntUtils Github .Используя любую из этих библиотек, вы можете отправлять свой запрос REST и получать ответ независимо от Spring как часть вашей бизнес-логики

0 голосов
/ 04 июня 2019

Так вот что это решило для меня в конце, если у кого-то еще есть такая же проблема:

String output = EntityUtils.toString(response.getEntity())
String content = new Gson().fromJson(output, String.class);
0 голосов
/ 21 мая 2019

Это может помочь,

HttpEntity entity = response.getEntity();
String responseString = EntityUtils.toString(entity, "UTF-8");
System.out.println(responseString);

Ссылка от - Как получить тело ответа http в виде строки в Java?

...