在发送之前阅读响应

时间:2012-01-25 16:22:42

标签: java servlets outputstream

我通过servlet向用户发送纯文本文件。

我使用flatworm框架来构建平面文件。我在浏览器中收到该文件但是为空。所以我想在发送之前开始调试分析输出流。

在将其发送到servlet之前,我如何阅读响应?我认为如何将OutputStream转换为InputStream是一回事。

我已经看到了始终涉及ByteArrayOutputStream的解决方案,正如您所知,当我在servlet response.getOutputStream()中调用时,它会返回OutputStream而不是ByteArrayOutputStream。< / p>

1 个答案:

答案 0 :(得分:0)

某处似乎有些混乱,但我不确定究竟在哪里。

你可以用OutputStream做什么?为什么,你可以写信,关于它。这意味着,如果您(或查找)输出流,则由您来提供数据 - 这意味着您已经拥有它。

也许另一方面,你自己并没有直接在OutputStream上调用write,而是将这个流传递给扁虫库(它会将输出写入它)。在那种情况下,你的调试是&#34; hook&#34;就在那里 - 扁虫会将文件写出到你发送的任何输出流。因此,在这种情况下,您不必传入servlet的流,而是传入您自己创建的流。

这可能是ByteArrayOutputStream,它(在返回扁虫方法之后)可以检查以获取写入的字节。此时,您可以手动将它们写入响应的输出流。或者你可能需要做一些稍微复杂的事情并创建自己的流包装器,它直接写入底层的响应流但是记录在路上 - 并将其传递给扁虫。

但最重要的是,如果您正在与输出流进行交互,那么&#34;您的&#34;代码已经在本地某处获得了数据,而这只是捕获/访问数据的问题。