【发布时间】:2012-10-04 00:16:48
【问题描述】:
我想转储org.apache.http.client.methods.HttpPost 对象的完整内容,以便我可以使用 curl 调试该对象的问题。有没有办法做到这一点?
谢谢。
【问题讨论】:
-
这是 java 类、.net 类还是别的什么?这个问题和 apache 有什么关系?
-
这是java。我很抱歉打错了标签。固定。
我想转储org.apache.http.client.methods.HttpPost 对象的完整内容,以便我可以使用 curl 调试该对象的问题。有没有办法做到这一点?
谢谢。
【问题讨论】:
不太清楚您要做什么,但我想您想查看从 Java 发送到某个远程端点的内容。您可以拦截实际的 HTTP 请求,并且有相应的工具:
截获请求后,您会看到它的原始形式,类似于
POST /endpoint HTTP/1.1
Accept-Encoding: gzip
Accept: text/xml
Content-Type: text/xml; charset=utf-8
Content-Length: 342
Host: 127.0.0.1:8080
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.2.1 (java 1.5)
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
/// etc
有了转储,您将能够使用 curl 重现请求并修改其中的某些部分以查看它们是否错误。
Fiddler2 很容易上手。 TunnelliJ 更简单,但与 IDEA 相关联。 Wireshark 是较低级别的,允许拦截任何流量,而不仅仅是 HTTP。但它需要一些技能才能使用它。
【讨论】: