我想将一些请求(类型javax.servlet.http.HttpServletRequest)转储到一个文件中,然后稍后从文件中重放它们,以便我可以测试将来的更改HttpServlet.实现这一目标的最佳方法是什么?
到目前为止,我正在尝试从与请求关联的输入流中提取数据,并将此二进制数据保存到文件中.最终,这可能需要在每个保存的输入流之前存储字节计数,以便我知道一个请求结束而另一个请求开始.
有更简单的方法吗?
**编辑:澄清一下,这些不是涉及浏览器的请求.到目前为止,没有一个答案解决了我的特定问题,我想这可归结为序列化和反序列化HttpServletRequest.我试过从request.getInputStream()返回的输入流中拉出字节.不幸的是,如果我将其转换为字符串,似乎无法通过Message.Builder.mergeFrom(bytes)解析生成的字节.
我会为知道如何解决问题的人提供赏金.
CodedOutputStream在我的具体情况下,我最终通过使用 a编写com.google.protobuf.GeneratedMessage(如下)解决了问题foo:
ByteArrayOutputStream bos = new ByteArrayOutputStream();
CodedOutputStream cos = CodedOutputStream.newInstance(bos);
foo.writeTo(cos);
Run Code Online (Sandbox Code Playgroud)
这可以使用 a 来读取,CodedInputStream例如:
byte[] ba = readBytesFromOutputFile();
CodedInputStream cis = CodedInputStream.newInstance(ba);
Run Code Online (Sandbox Code Playgroud)
然后可以将其CodedInputStream传递给消息生成器以完成反序列化。
| 归档时间: |
|
| 查看次数: |
3643 次 |
| 最近记录: |