使用带有telnet连接的Curl调用Web服务



现在我正试图使用Unix平台上的Curl命令调用Web服务。Web服务在外部服务器上可用。我只能使用telnet连接外部服务器。Web服务使用基本身份验证,我必须提供用户名和密码。

有人能帮我找到正确的方法吗?

如果您不需要curl,只想通过telnet连接测试本地web服务,那么只需键入适当的HTTP命令即可。

$ telnet remotehost 80
Trying IP.IP.IP.IP...
Connected to remotehost.
Escape character is '^]'.
GET / HTTP/1.0
Content-Type: text/xml;charset=UTF-8
SOAPAction:urn:login
Authorization: Basic base64encodedstring

# need 2 carriage returns above to denote completion of request body.

但如果您出于任何原因想要curl,那么Curls的"TELNET"函数似乎可以通过TELNET连接传递curl命令。

curl telnet://remotehost

TELNETcurl telnet支持是基本的,而且非常容易使用。Curl将stdin上传递给它的所有数据传递给远程服务器。连接到使用类似于的命令行的远程telnet服务器

curl telnet://remote.server.com

并在stdin上输入要传递给服务器的数据。结果将发送到stdout或用-o指定的文件。您可能希望使用-N/--no-buffer选项来关闭慢速连接或类似情况下的缓冲输出。使用-t选项将选项传递到telnet协议协商。要告诉服务器我们使用vt100终端,请尝试类似:

curl -tTTYPE=vt100 telnet://remote.server.com

其他有趣的选项包括:

  • XDISPLOC=设置X显示位置。

  • NEW_ENV=设置环境变量。注意:telnet协议没有指定任何使用指定用户和密码登录的方式,因此curl不能自动执行此操作。到要做到这一点,您需要跟踪何时收到登录提示,并且相应地发送用户名和密码。

最新更新