我想转储一个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。但它需要一些技能才能使用它。