Java的:发送前的HttpURLConnection类的显示请求
-
26-09-2019 - |
题
我要做出一些API调用使用HttpURLConnection
服务器。但请求都没有成功,返回:
<error>
<http_status>400 Bad Request</http_status>
<message>Unexpected request Content-Type header ''. Expecting 'application/x-www-form-urlencoded'.</message>
</error>
所以,我要检查“真正”的内容是什么正被发送到服务器。通过真实内容我的意思是精确的HTTP请求。
任何想法如何,我可以看到这个?
修改强>
基于第一答案,在这里我要澄清我的问题:我想避免使用外部程序,如HTTP嗅探器或任何东西,我希望有一个功能或属性或任何持有我要找的信息。 p>
如果不是的情况下,没有人知道,如果该信息可以手动重建(例如通过调用一些功能等getRequestMethod(),等等) 我面临这个问题还挺往往使得它的价值,建立这样的功能自己的努力。只需要知道如何:)
解决方案
可以通过实现与java.logging把HttpURLConnection的在调试模式
-Djava.util.logging.config.file=logging.properties
和放入logging.properties(默认在JRE_HOME \ lib中)以下属性
sun.net.www.protocol.http.HttpURLConnection.level = ALL
其他提示
tcpdump的工作,但它可能很难让它做你想要什么。 NetCat的是更加人性化(这里的项目页面: http://netcat.sourceforge.net/ - 最Unix平台已经包括它)。
nc -l 9999
此将侦听TCP端口9999上,并且当一个HTTP客户端连接,它会打印出请求的全文。
使用类似tcpdump的,它可以转储由计算机发出或接收到的实际的网络分组。
不隶属于 StackOverflow