愚蠢的问题:有没有批处理模式实用程序(例如 curl 或 wget 的特定选项)可以让我发出原始 HTTP 命令,并根据我的需要输出原始结果或管道/重定向它?
我知道 telnet 理论上可以工作,但我运行的是 Windows XP,Microsoft telnet 和 PuTTY 似乎都是交互式的,而且似乎把事情搞砸了。
编辑:(澄清)我以前用过 curl,所以很熟悉这个想法,以及如何通过 GET/POST 发送参数,只是不知道如何明确控制标题,以及如何将标题保留在输出中...我可以看到两种对我有用的可能方法:
原始 HTTP I/O-- 我的意思实际上是像 telnet 但是采用批处理模式(不打开新窗口或弄乱终端设置):
GET http://someserver/someresource/blah.html HTTP/1.1 301 Moved Permanently Date: Wed, 14 Oct 2009 21:23:40 GMT ...
“简单”输入,原始 HTTP 输出——以常规方法使用 curl,但能够逐字查看原始输出:
> curl --some-option --another-option http://someserver/someresource/blah.html HTTP/1.1 301 Moved Permanently Date: Wed, 14 Oct 2009 21:23:40 GMT ...
答案1
是的,curl 和 wget 都可以做到这一点。请详细说明您要执行哪种命令。
随机示例:
wget --post-data="Some random data sent via POST" "http://example.com/cgi/something.php?arg=1&foo=bar" -q -O results.txt
通过 POST 发送一些数据,并通过 GET 发送一些参数到特定 URL。-q 表示不提供进度更新,-O 指定要输出到哪个文件。-O -
如果您希望通过管道传输结果而不是保存到文件,请使用此选项。
答案2
答案3
Mac OS X 的 HTTP 客户端非常方便,http://ditchnet.org/httpclient/