Ich sende eine sehr lange Zeichenfolge als Http response body als Teil der Spring-Anwendung, und die Antwort String umfasst Zeilen des Zugriffsprotokolls von denen jede Zeile sollte ein Tabulatorzeichen (\ t) sowie ein neues Zeilenzeichen (\ n) haben. String.format("%s\t%s\n", accessLog.getIpAddress(), accessLog.getDate())
Wie eine ausführliche Zeichenfolge mit ResponseBody einschließlich Zeilenvorschubzeichen und Tab-Zeichen übergeben
Prüfung der API durch Charles Proxy, beide Sonderzeichen sind auch gezeigt:
Jede Zeile wird wie gemacht. Wenn Sie jedoch dasselbe mit dem Chrome-Browser testen, werden sowohl \ t als auch \ n aus irgendeinem Grund durch ein Leerzeichen ersetzt.
Plus, ich sende diese Zeilen des Zugriffsprotokolls mit Spring @ResponseBody
Annotation. Irgendein Problem damit?
Unten ist 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());
}
Fehlerfall Screenshot: Error case screenshot from Chrome brower
Jeder mich aus dieser helfen könnte? Irgendwelche Kommentare würden wirklich geschätzt werden! Vielen Dank.
Wenn Chrome Ihre Ausgabe als HTML interpretiert, wird das erwartet. Zeig uns deinen Code. –
@JBNizet Da der obige Controller seine Antwort direkt in den eigentlichen Antworttextteil schreibt, ist der Inhaltstyp text/plain. Btw, der Code ist eingefügt. Vielen Dank. – choiapril
Wie wird dieser Fehler in Chrome angezeigt? Was sagt die Chrome-Netzwerkkonsole zum Inhaltstyp? Wenn Sie sich den Antworttext in der Chrome-Netzwerkkonsole ansehen, sehen Sie Ihre Tabs und Zeilenumbrüche? Irgendein Screenshot? –