#nginx
#nginx
Вопрос:
Я пытаюсь захватить тело запроса в моем обработчике java nginx, по какой-то причине я получаю исключение нулевого указателя. Как нам захватить тело в обработчике Java?
public Object[] invoke(Map<String, Object> request) {
InputStream is = (InputStream) request.get(Constants.BODY);
String abc = getIdFromBody(is)
if(abc !=null)
{ return Constants.PHASE_DONE;}
}
private String getIdFromBody(InputStream is) {
ObjectNode node;
String text = null ;
try {
text = IOUtils.toString(is, StandardCharsets.UTF_8.name());
logger.info("requestPayload={}", text);
}
catch (IOException e) {
e.printStackTrace();
}
logger.info("didnt get entity_id ", text);
return text;
}
Ответ №1:
Кажется, вы используете обработчик содержимого, поэтому вы должны возвращать обычный ответ вместо констант.ФАЗА_ДОНА.
Константы.PHASE_DONE используется в обработчике, не относящемся к контенту, например, фильтр заголовка, фильтр тела, обработчик доступа, обработчик перезаписи.