Получение HTTP-запроса от процесса TIBCO BW
У меня есть процесс TIBCO BW, который начинается с действия "HTTP Receiver".
Я хотел бы получить (с помощью пользовательской активности Java-кода) размер исходного HTTP-запроса. (Цель - собрать статистику, измерить время ответа, размеры запросов / ответов и т. Д.)
Я хотел бы измерить данные в байтах, а не в символах, возможно ли получить запрос в виде байтового массива, ServletInputStream или чего-то подобного?
1 ответ
Я не думаю, что вы можете получить исходный запрос из кода Java - просто потому, что вы не можете получить доступ к объекту HTTPServletRequest HTTP Receiver из действия Java. Если вы хотите получить доступ к необработанным данным запроса, вы можете написать прокси-сервлет и получить доступ к BusinessWorks через этот прокси-сервлет.
Если ваша задача только получить статистику по размеру запроса, есть более простое решение. По этой причине вы можете использовать параметр заголовка "Content-length" ( http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).
Поле заголовка объекта Content-Length указывает размер тела объекта в десятичном числе OCTET, отправленного получателю.
Длина содержимого - это выходной параметр получателя HTTP. Вам может потребоваться добавить длину параметров "RequestURI", "PostData" и "Header", поскольку они не являются частью тела объекта.
Обновление: PostData является частью тела объекта, поэтому его размер включен в Content-length