我有兴趣将HTTP请求脚本化为我编写的监听Web服务(用于测试目的)。我想在Powershell中执行此操作。通过telnet启动HTTP请求很简单。如何在Telnet中创建HTTP请求
telnet google.com 80
然后,建立一个socket后,我可以在下面的HTTP动词和文件类型:
GET /search?q=test
这相当于执行一个谷歌搜索单词“测试”。大!但是,如果我想要做更有趣的事情,我需要提供更详细的HTTP请求标头。我想在这里做的发现非常相似的例子东西:http://blog.tonycode.com/tech-stuff/http-notes/making-http-requests-via-telnet
下面笔者继续使用之前的网站例子,我创建了包含以下内容的本地文件:
echo "open $1 $2"
sleep 2
echo "GET $4 HTTP/1.0"
echo "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.4) Gecko/20070515 Firefox/2.0.0.4"
echo "Host: $3"
echo
echo
sleep 2
(这是类似于我想用于测试我自己的网络服务的自定义HTTP请求标题)
然后,我将该文件保存为“getpage”(我也尝试将它保存为“getpage.sh”)。我继续按照笔者的例子,试图管上一个文件到远程登录从Powershell的:
./getpage tonycode.com 80 tonycode.com /| telnet
然而,PowerShell是返回以下错误:
Cannot run a document in the middle of a pipeline: ~\Desktop\getpage.
At line:1 char:1
+ ./getpage tonycode.com 80 tonycode.com /| telnet
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (~....Desktop\getpage:String) [], RuntimeException
+ FullyQualifiedErrorId : CantActivateDocumentInPipeline
我在PowerShell中输入$ PSVersionTable和验证我使用Powershell版本4.0。我开始用尽想法。我通过StackOverflow论坛查看了通过telnet发送的http请求,但是我还没有找到一种好方法,通过telnet通过一个shell管道传递一个预先形成的http头来发送一个自定义的HTTP请求头。我无法在telnet中输入整个Http请求,因为1)这会破坏脚本编写这些事情的目的,2)在完成键入完整的Http标头之前,按下telnet中的Enter键提交当前请求。有没有人有任何建议,我可以在PowerShell中完成此任务?我已经可以在Firefox中编写和发送自定义的Http头文件,并且使生活更轻松。如果可能的话,我只想在Powershell中编写脚本。提前致谢。
'A', 'B' |的foreach对象{$ PSItem} –
PS ......如果你不坚持使用Telnet客户端,有万吨制作exaples的“原始”的HTTP请求与System.Net.Sockets.TcpClient –