Java:发送前显示HttpURLConnection的请求


问题内容

我想使用对服务器进行一些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嗅探器)或其他任何东西,而我希望有一个函数或一个属性或任何包含我要查找的信息的东西。

如果不是这种情况,有人知道该信息是否可以手动重建(例如,通过调用诸如getRequestMethod()等几个函数)。

我经常会遇到这个问题,因此值得自己构建这种功能。只需要知道如何:)


问题答案:

您可以通过启用java.logging将HttpURLConnection置于调试模式

-Djava.util.logging.config.file=logging.properties

并将以下属性放入logging.properties(默认情况下在JRE_HOME \ lib中)

sun.net.www.protocol.http.HttpURLConnection.level = ALL