2011-01-06 2 views
0

У меня есть процесс TIBCO BW, который начинается с действия «HTTP-приемник».Получение HTTP-запроса от процесса TIBCO BW

Я хотел бы получить (через пользовательскую активность Java-кода) размер исходного HTTP-запроса. (Цель для сбора статистических данных, измерять время отклика, размер запроса/ответа и т.д.)

Я хотел бы, чтобы измерить данные в байтах, а не в символах, можно получить запрос как байт массив, ServletInputStream или что-то подобное?

ответ

3

Я не думаю, что вы можете получить исходный запрос от Java-кода - просто потому, что вы не можете получить доступ к объекту HTTPServletRequest HTTP-приемника из Java-активности. Если вы хотите получить доступ к необработанным данным запроса, вы можете написать сервлет прокси и получить доступ к BusinessWorks через этот сервлет-сервлет.

Если ваша задача состоит только в том, чтобы получить статистику по размеру запроса, есть более простое решение. По этой причине вы можете использовать параметр заголовка Content-length (http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html).

Поле заголовка объекта Content-Length указывает размер тела объекта, в десятичное число октетов, посланный получателю

Content-Length является параметром выходного HTTP получатель. Возможно, вам придется добавить длину параметров «RequestURI», «PostData» и «Header», поскольку они не являются частью тела объекта.


Обновление: PostData является частью тела объекта, поэтому его размер входит в Content-Length

Смежные вопросы