Echo curl 请求标题和正文而不发送它?
Posted
技术标签:
【中文标题】Echo curl 请求标题和正文而不发送它?【英文标题】:Echo curl request header & body without sending it? 【发布时间】:2011-09-05 00:40:34 【问题描述】:使用 curl 命令行工具,是否可以 echo
打印或查看请求而不发送?有点像-n
选项?我想查看请求标头和正文,以及包含的任何其他内容。除了标题和正文之外,还有其他发送的内容吗?
【问题讨论】:
【参考方案1】:HTTP request 由请求行、标头和正文构成。
curl 似乎没有进行“试运行”的标志。根据您的需要,您可以使用netcat 作为代理查看您想要的内容:
$ nc -l localhost 8000 &
[1] 3150
$ curl --proxy localhost:8000 --silent --max-time 1 http://www.***.com
GET http://www.***.com HTTP/1.1
User-Agent: curl/7.19.7 (x86_64-pc-linux-gnu) libcurl/7.19.7 OpenSSL/0.9.8k zlib/1.2.3.3 libidn/1.15
Host: www.***.com
Accept: */*
Proxy-Connection: Keep-Alive
[1]+ Done nc -l localhost 8000
【讨论】:
您是如何让 netcat 干净地终止的 ([1]+ Done
)?在我的测试中,我发现我需要Ctrl-C
退出它,然后fg
它,然后Ctrl-D
。它有效,但似乎是退出 netcat 的一种笨拙方式。
啊 - 看起来关键是 --max-time 1
标志,用于超时,--silent
用于抑制超时消息。我一开始都省略了。
...当然这不适用于 HTTPS,它只显示 CONNECT www.***.com:443 HTTP/1.1
和 Proxy-Connection: Keep-Alive【参考方案2】:
让我支持使用 'nc' (netcat) 来查看所有详细信息的建议,而无需将任何东西发送到任何异地。
但您也可以使用--trace 或--trace-ascii 命令获取任何 curl 命令行请求的所有详细信息,这些命令可以转储所有传入和传出数据以及检查请求。
与“nc”相比,这些选项具有额外的好处,即它们可以显示协议详细信息,即使是 HTTPS 操作和“真实”命令行等。
【讨论】:
--trace -
用于标准输出。以上是关于Echo curl 请求标题和正文而不发送它?的主要内容,如果未能解决你的问题,请参考以下文章