我有一个以“HTTP 接收器”活动开始的 TIBCO BW 流程。
我想(通过自定义 Java 代码活动)获取原始 HTTP 请求的大小。(目的是收集统计数据、测量响应时间、请求/响应大小等)
我想以字节而不是字符来测量数据,是否可以将请求作为字节数组、ServletInputStream 或类似的东西来获取?
我有一个以“HTTP 接收器”活动开始的 TIBCO BW 流程。
我想(通过自定义 Java 代码活动)获取原始 HTTP 请求的大小。(目的是收集统计数据、测量响应时间、请求/响应大小等)
我想以字节而不是字符来测量数据,是否可以将请求作为字节数组、ServletInputStream 或类似的东西来获取?
我认为您无法从 Java 代码中获取原始请求 - 仅仅是因为您无法从 Java 活动中访问 HTTP 接收器的 HTTPServletRequest 对象。如果您想访问原始请求数据,您可以编写一个代理 servlet 并通过该代理 servlet 访问 BusinessWorks。
如果您的任务只是获取请求大小的统计信息,那么有一个更简单的解决方案。为此,您可以使用“Content-length”标头参数(http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html)。
Content-Length entity-header 字段指示发送给接收者的实体主体的大小,以十进制的八进制数表示
Content-length 是 HTTP 接收器的输出参数。您可能需要添加“RequestURI”、“PostData”和“Header”参数的长度,因为它们不是实体主体的一部分。
更新: PostData是实体主体的一部分,因此它的大小包含在内容长度中