Java 为什么okhttp向响应输出添加换行符(\n)?

Java 为什么okhttp向响应输出添加换行符(\n)?,java,okhttp,Java,Okhttp,伪代码: 导入okhttp3.*; private final OkHttpClient mClient=new OkHttpClient.Builder().readTimeout(45,TimeUnit.SECONDS).build(); Request Request=newrequest.Builder().url(createUrl(路径、参数)).build(); okhttp3.Response-Response=mClient.newCall(request.execute();

伪代码:

导入okhttp3.*;
private final OkHttpClient mClient=new OkHttpClient.Builder().readTimeout(45,TimeUnit.SECONDS).build();
Request Request=newrequest.Builder().url(createUrl(路径、参数)).build();
okhttp3.Response-Response=mClient.newCall(request.execute();
String body=response.body().String();
系统输出打印(正文);

我的HTTP服务器没有在消息体中发送任何换行符(\n)(我使用curl验证了这一点);当我从okhttp打印收到的响应正文时,我总是看到\n。关于如何让okhttp知道不要添加\n?

“我的HTTP服务器不发送任何换行符”有什么想法吗?你确定吗?HTTP标准指定了HTTP头和HTTP正文之间的换行符(CRLF)。HTTP解析器倾向于预测换行符,因为它是标准的一部分。请尝试
curl-I | xxd
,看看您是否注意到HTTP响应头末尾的
0a
。通常会看到
0d0a0d0a
\r\n\r\n
。我应该澄清:除了HTTP头(如您所示),我的服务器不发送\n。我将更新问题以说明这一信息。我再次确认使用了curl。这不太可能。检查你的观察结果。谢谢大家抽出时间。对于我来说,现在创建一个针对公共服务器的测试用例还不够重要。让我们把这个保存在这里,以防其他人发现同样的问题。“我的HTTP服务器不发送任何新行”-你确定吗?HTTP标准指定了HTTP头和HTTP正文之间的换行符(CRLF)。HTTP解析器倾向于预测换行符,因为它是标准的一部分。请尝试
curl-I | xxd
,看看您是否注意到HTTP响应头末尾的
0a
。通常会看到
0d0a0d0a
\r\n\r\n
。我应该澄清:除了HTTP头(如您所示),我的服务器不发送\n。我将更新问题以说明这一信息。我再次确认使用了curl。这不太可能。检查你的观察结果。谢谢大家抽出时间。对于我来说,现在创建一个针对公共服务器的测试用例还不够重要。让我们把这个放在这里,以防其他人发现同样的问题。