如何通过命令行以多行形式向 HTTP 服务器发送请求?
Posted
技术标签:
【中文标题】如何通过命令行以多行形式向 HTTP 服务器发送请求?【英文标题】:How to send a Request to HTTP server in multiline form through command line? 【发布时间】:2013-07-10 23:36:54 【问题描述】:我想通过命令行(Telnet 客户端)向 html 页面发送请求,但我做不到。
我写:
GET / HTTP/1.1
然后当我想移动到下一行以写入主机名并按“enter”键时,它不会这样做,它只是执行该命令并显示:“Invailed command”。我尝试设置 localecho 和 crlf,但没有成功。
有人可以帮帮我吗?
【问题讨论】:
为了清楚起见,我想写成它的实际形式:GET /index.cfm?test=1 HTTP/1.1 host: www.myserver.com 【参考方案1】:我会说你刚刚开始 telnet 没有任何额外的命令行选项。 您必须使用您请求的服务器名称和端口号来启动它:
$ telnet some.page.com 80
然后它应该可以工作了。
你也可以在telnet中指定服务器和端口:
telnet> open google.com 80
【讨论】:
好吧,我做到了,但我想手动运行请求。我该怎么做? 手动是指它的外观和结构: 对不起,我真的不明白你所说的“手动”是什么意思。我写的所有内容都是“手动”完成的。你能改写一下这个问题吗? 手动我的意思是完全发送请求,就像它真正发送到浏览器的方式一样,包括方法、页面名称、服务器版本和主机。例如:GET / HTTP/1.1 主机:www.google.com 我很困惑.. 究竟是什么阻止了你这样做?为了让自己清楚 - 我的意思是:1)运行telnet
,2)写open google.com 80
,3)写你的请求:GET / HTTP/1.1<Enter>Host: www.google.com<Enter><Enter>
- 完成。这行得通吗?以上是关于如何通过命令行以多行形式向 HTTP 服务器发送请求?的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 AWS HTTP API 向 Lambda 发送参数