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