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