我正在创建Web服务,以使Android应用与服务器通信。 我在服务器上使用Tomcat,在传输过程中使用JAX RS lib在Java对象和JSON之间转换数据。 我想要的是能够查看框架正在创建的实际HTTP请求和响应。
网页浏览器(如Firefox with Firebug)不会这样做,因为我还需要检查Android应用生成的请求主体。
使用Servlet API,我可以拦截并使用过滤器获取请求数据,但不是在框架编写之后的响应(我相信)。
Wireshark可能是一个解决方案(我现在正在尝试),但似乎有点太多了。我需要担心正确过滤我的消息,并且还没弄清楚如何正确格式化我的HTTP消息(纯文本没有hexa内容)。
我想知道是否有更简单的方法可以从我的应用程序或tomcat中执行此操作。
答案 0 :(得分:0)
尝试Tomcat的AccessLogValve。您可以将其配置为记录传入的请求标头以及传出的响应标头。这是一个例子:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_headers_access_log." suffix=".txt"
pattern="%t "%r" %s ||| %{Content-Length}o ||| %{User-Agent}i" />
注意%{xxx} o模式 - 即响应标头。您可能希望将其用作%{X-JSON} o。另请注意%{xxx} i模式 - 即请求标头。
将<Valve/>
元素嵌套在<Context/>
,<Host/>
或<Engine/>
元素中,您将全部设置完毕。
答案 1 :(得分:0)
我最终使用Wireshark和以下过滤器:
http.content_type ==“application / json”|| http.accept == “应用程序/ JSON”
要解码内容,请右键单击包的json部分(“JavaScript Object Notation:application / json”)&gt;复制&gt;字节&gt;仅可打印文本