【发布时间】:2011-09-05 00:40:34
【问题描述】:
使用 curl 命令行工具,是否可以 echo 打印或查看请求而不发送?有点像-n 选项?我想查看请求标头和正文,以及包含的任何其他内容。除了标题和正文之外,还有其他发送的内容吗?
【问题讨论】:
标签: curl http-headers request httprequest echo
使用 curl 命令行工具,是否可以 echo 打印或查看请求而不发送?有点像-n 选项?我想查看请求标头和正文,以及包含的任何其他内容。除了标题和正文之外,还有其他发送的内容吗?
【问题讨论】:
标签: curl http-headers request httprequest echo
HTTP request 由请求行、标头和正文构成。
curl 似乎没有进行“试运行”的标志。根据您的需要,您可以使用netcat 作为代理查看您想要的内容:
$ nc -l localhost 8000 &
[1] 3150
$ curl --proxy localhost:8000 --silent --max-time 1 http://www.stackoverflow.com
GET http://www.stackoverflow.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.stackoverflow.com
Accept: */*
Proxy-Connection: Keep-Alive
[1]+ Done nc -l localhost 8000
【讨论】:
[1]+ Done)?在我的测试中,我发现我需要Ctrl-C 退出它,然后fg 它,然后Ctrl-D。它有效,但似乎是退出 netcat 的一种笨拙方式。
--max-time 1 标志,用于超时,--silent 用于抑制超时消息。我一开始都省略了。
CONNECT www.stackoverflow.com:443 HTTP/1.1 和 Proxy-Connection: Keep-Alive
让我支持使用 'nc' (netcat) 来查看所有详细信息的建议,而无需将任何东西发送到任何异地。
但您也可以使用--trace 或--trace-ascii 命令获取任何 curl 命令行请求的所有详细信息,这些命令可以转储所有传入和传出数据以及检查请求。
与“nc”相比,这些选项具有额外的好处,即它们可以显示协议详细信息,即使是 HTTPS 操作和“真实”命令行等。
【讨论】:
--trace - 用于标准输出。