HttpResponse 响应字符串有额外的 `"` 并且不识别 `\n`

HttpResponse response String has extra `"` and doesn't recognize `\n`

我有一个 class 实现了 Route 接口(包 spark),它应该 return handle 函数中的一个字符串。当我将响应转换为字符串时,我的字符串的开头和结尾有两个额外的 " 并且 \n 在我的字符串中不被识别为 1 个字符,而是被识别为 2 个字符。有谁知道修复?

这是代码,responseHttpResponse 的实例:

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()

这可能有帮助,

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

参考资料来自 -

这个问题和答案可能会有所帮助:

基本上我建议使用 3d 派对库来为你处理 http requests/responses 以下是我对那个问题的回答的相关部分的副本:
您可以使用发送 Http 请求并处理响应的 3-d 方库。 well-known 产品之一是 Apache commons HTTPClient:HttpClient javadoc, HttpClient Maven artifact. There is by far less known but much simpler HTTPClient (part of an open source MgntUtils library written by me): MgntUtils HttpClient javadoc, MgntUtils maven artifact, MgntUtils Github。使用这些库中的任何一个,您都可以发送 REST 请求并独立于 Spring 接收响应,作为业务逻辑的一部分

这就是最后为我解决的方法,如果其他人有同样的问题:

String output = EntityUtils.toString(response.getEntity())
String content = new Gson().fromJson(output, String.class);