Захватить архив html с BufferedReader toString, печать ответа "\" - PullRequest
0 голосов
/ 05 марта 2020

Мне нужно извлечь содержимое файла html, который находится в папке ресурсов моего проекта при весенней загрузке.

Дело в том, что я уже прочитал файл, но при передаче его в ответ из службы консоли он меня прекрасно рисует, но в ответе службы вся строка с "\" в каждой двойной кавычке, найденной в файле.

Это мой метод:

private String convertHTML() {
    Resource resource = loader.getResource("classpath:static/email.html");
    String result = "";
    try {
        String title = "Hi, I'm a title";
        String body = "Hi, I'm the body of the message :)";
        InputStream ip = resource.getInputStream();
        InputStreamReader isReader = new InputStreamReader(ip);
        BufferedReader reader = new BufferedReader(isReader);
          StringBuffer sb = new StringBuffer();
          String str;
          while((str = reader.readLine())!= null){
              sb.append(str.trim());
          }
         result = sb.toString().replaceAll("%s", title).replaceAll("%0s", body);

    } catch (IOException e) {
        e.printStackTrace();
    }
    System.out.println(result);
    return result;
}

В консоли печатается нормально без "\":

enter image description here

В ответе службы почтальон:

enter image description here

Весь ответ возвращает его со знаком "\".

Как мне это сделать что, когда я возвращаю строку, которая не происходит со мной?

Или у вас есть лучший вариант для выполнения этого процесса?

Извините за мой английский sh.

1 Ответ

0 голосов
/ 05 марта 2020

Вы смотрите на вывод почтальона. Я полагаю, вы используете JSON вокруг вашей строки? Экранирование символов происходит из вашей кодировки JSON (?) Вокруг строки, потому что необходимо экранировать символы "" ", чтобы не смешивать с JSON разделителями строк:

{
  "foo": "bar",
  "baz": "\"hello world\""
}

Экранирование будет быть невидимым в декодированной JSON полезной нагрузке, не волнуйтесь.

...