我作为Spring应用程序的一部分,将一个非常长的String作为Http响应主体发送回去,并且响应String包含访问日志行,其中的每一行都应具有制表符(\ t)以及换行符( \ n)。
每行的制作方式如下: String.format("%s\t%s\n", accessLog.getIpAddress(), accessLog.getDate())
通过Charles代理测试API,都很好地显示了两个特殊字符。但是,如果使用Chrome浏览器进行相同的测试,由于某种原因,\ t和\ n都被替换为空格。
另外,我正在使用Spring@ResponseBody
注释发送此行访问日志。有什么问题吗?
下面是Controller.java:
@RequestMapping("/get_access_log.do")
@ResponseBody
public String test() throws Exception {
return result = accessLogBO.extractTest();
}
AccessLogBO.java:
public String extractTest() throws IOException {
String inputFile = "C:\\Users\\input.txt";
String response = "";
FileReader fr = new FileReader(inputFile);
BufferedReader br = new BufferedReader(fr);
StringBuilder sb = new StringBuilder();
String line = null;
while((line = br.readLine()) != null) {
String formattedLine = format(line);
sb.append(formattedLine);
}
}
br.close();
fr.close();
return sb.toString();
}
private String format(String line) {
AccessLog accessLog = parseAccessLog(line);
return String.format("%s\t%s\n", accessLog.getIpAddress(), accessLog.getDate());
}
错误案例屏幕截图:Chrome浏览器中的错误案例屏幕截图
任何人都可以帮助我吗?任何意见将不胜感激!谢谢你。
Chrome会将响应解释为HTML,因为内容类型不是文本/纯文本。
在RequestMapping批注中将text / plain设置为产生的内容类型应该可以解决该问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句