Чтение неанглийского контента UTF-8 из HTTP-запроса - PullRequest
0 голосов
/ 30 августа 2018

У меня есть код ниже.

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

private String readContent (запрос HttpServletRequest) выдает IOException {

String body = null;
BufferedReader reader = null;

if (logger.isDebugEnabled()) {
    logger.debug("Inside readContent() ...");
}

try {
    // Read from request
    StringBuilder buffer = new StringBuilder();
    reader = request.getReader();
    String line;
    while ((line = reader.readLine()) != null) {
        buffer.append(line + "\n");
    }

//  if (body != null) {
        body = buffer.toString();
        body.trim();
//  }

} catch (IOException ex) {
    throw ex;
} finally {
    if (reader != null) {
        try {
            reader.close();
        } catch (IOException ex) {
            throw ex;
        }
    }
}

if (logger.isDebugEnabled()) {
    logger.debug("Leaving readContent() ..." + body);
}
return body;

}

1 Ответ

0 голосов
/ 30 августа 2018

Я бы сделал что-то подобное и использовал бы Apache Commons IOUtils. Вам просто нужно указать свою кодировку.

InputStream inputStream = request.getInputStream();
String contentAsString = IOUtils.toString(inputStream, "UTF-8"); 

Вы можете использовать блок try / catch для обработки исключения IOException, которое может быть выдано. Или позвольте вашему методу создать исключение, которое будет перехвачено / обработано где-то еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...