首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Java:发送前显示HttpURLConnection的请求

Java:发送前显示HttpURLConnection的请求
EN

Stack Overflow用户
提问于 2010-08-06 22:51:24
回答 4查看 23.3K关注 0票数 23

我想对使用HttpURLConnection的服务器进行一些API调用。但是请求没有成功,返回:

代码语言:javascript
运行
AI代码解释
复制
<error>
  <http_status>400 Bad Request</http_status>
  <message>Unexpected request Content-Type header ''. Expecting 'application/x-www-form-urlencoded'.</message>
</error>

所以我想要检查发送到服务器的“真实”内容是什么。所谓真正的内容,我指的是确切的HTTP请求。

你知道我怎么才能看到这个吗?

基于这里的第一个答案,我应该澄清我的问题:我想避免使用像 sniffer之类的外部程序,我希望有一个函数或属性或任何东西来保存我正在寻找的信息。

如果不是这样,是否有人知道是否可以手动重新构建此信息(例如,通过调用getRequestMethod()等几个函数)

我经常遇到这个问题,所以值得我自己去构建这样的功能。只需要知道如何:)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-08-07 02:15:48

通过使用以下命令启用java.logging,可以将HttpURLConnection置于调试模式

代码语言:javascript
运行
AI代码解释
复制
-Djava.util.logging.config.file=logging.properties

并将以下属性放入logging.properties (缺省情况下在JRE_HOME\lib中

代码语言:javascript
运行
AI代码解释
复制
sun.net.www.protocol.http.HttpURLConnection.level = ALL
票数 14
EN

Stack Overflow用户

发布于 2010-08-07 01:03:21

tcpdump可以工作,但很难让它做您想要的事情。NetCat对用户更加友好(这里是项目页面:http://netcat.sourceforge.net/ -大多数Unix平台已经包含了它)。

代码语言:javascript
运行
AI代码解释
复制
nc -l 9999

这将侦听TCP端口9999,当HTTP客户端连接时,它将打印出请求的全文。

票数 5
EN

Stack Overflow用户

发布于 2021-01-13 13:04:25

被接受的解决方案对我不起作用。但这样做的是

代码语言:javascript
运行
AI代码解释
复制
static {
    ConsoleHandler handler = new ConsoleHandler();
    handler.setLevel(Level.ALL);
    Logger log = LogManager.getLogManager().getLogger("");
    log.addHandler(handler);
    log.setLevel(Level.ALL);
    System.setProperty("javax.net.debug","all"); 
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3428341

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文