2017-02-16 15 views
2

Я пытаюсь получить размер полезной нагрузки как от запроса и ответа для каждого вида типа контента с персонализированным обработчиком в WSO2 APIM1.10.0Как получить размер полезной нагрузки от пользовательского обработчика в WSO2 APIM

По ссылке this code, я могу получить размер полезной нагрузки с 2-мя способами:

  1. получить содержание заголовка длины (в строке 127)
  2. Построить сообщение и получить длину тела (в строке 132)

Но я думаю, что оба этих двух способа могут иметь некоторые проблемы.

  1. Пользователь может указать неправильную длину контента при вызове API.
  2. Тип содержимого API может быть непредсказуемым.

Итак, как я могу получить размер полезной нагрузки как от запроса, так и от ответа?

ответ

2

Вы можете сделать это с помощью посредника сценария. Длина полезной нагрузки сообщения может быть получена путем вызова mc.getPayloadXML() внутри посредника сценария как в последовательности, так и в последовательности. Дополнительную информацию см. В этом документе blog и о documentation об использовании посреднических расширений в API Manager.

+0

Спасибо за ответ – MikeWu

+0

Я мог получить длину тела из файла журнала. Но есть ли способ получить длину тела из моего пользовательского обработчика java? – MikeWu

+0

Вы можете получить доступ к полезной нагрузке в своем обработчике, создав сообщение внутри методов ** hanldeResponse ** и ** handleRequest ** перед чтением сообщения. Но, насколько мне известно, вы не можете получить размер полезной нагрузки из файла synapse.MessageContext, поскольку там не существует такого метода. –