终端 - 如何运行HTTP请求'PUT'

时间:2014-08-02 18:04:47

标签: linux bash http terminal put

所以,我想要做的是从Linux中的终端运行HTTP请求,'PUT'。不是POST,不是GET,'PUT'。

我知道在终端你可以输入'GET http://example.com/',但当我做'PUT http://example.com'(以及之后的一堆其他变量......)时,终端说PUT不是命令。

这是我试过的:

:~$ PUT http://example.com
PUT: command not found

那么,是否有替代命令'PUT',或某种方式从终端发送该HTTP请求?

我不想使用任何外部程序....我不想下载或安装任何东西。还有其他方法吗?

4 个答案:

答案 0 :(得分:4)

我会用curl来实现这个目标:curl -X PUT http://example.com

答案 1 :(得分:1)

你要

Terminal said that PUT is not a command.

因为信息没有通过网络连接重定向(到了解HTTP的东西)。 bash本身具有有限支持,可通过网络进行通信,如

中所述

除此之外,HTTP specification说的是 PUT

  

PUT方法请求将所包含的实体存储在提供的Request-URI下。如果Request-URI引用已经存在的资源,则封闭的实体应该被视为驻留在源服务器上的实体的修改版本。如果Request-URI未指向现有资源,并且该URI能够被请求用户代理定义为新资源,则源服务器可以使用该URI创建资源。

澄清一下,如果您正在使用现有URI,可能能够执行此操作,并且命令隐含地需要一些数据来反映修改。

HTTP - Methods(TutorialsPoint)中的示例显示了用于在URI上存储HTML正文的PUT命令。您的脚本必须将数据(以及初始请求)重定向到网络连接。

您可以使用here-document或重定向文件来完成所有这些操作,例如,(使用该示例来说明如何调整文件):

cat >/dev/tcp/example.com/80 <<EOF
PUT /hello.htm HTTP/1.1
User-Agent: Mozilla/4.0 (compatible; MSIE5.01; Windows NT)
Host: www.tutorialspoint.com
Accept-Language: en-us
Connection: Keep-Alive
Content-type: text/html
Content-Length: 182
<html>
<body>
<h1>Hello, World!</h1>
</body>
</html>
EOF

但是你的脚本也应该提供读取服务器的响应。

答案 2 :(得分:0)

curl -X PUT -d arg=val -d arg2=val2 http://sssss.zzzz

如果终端不是您的主要关注点,

将使用邮递员来处理HTTP请求www.getpostman.com,否则,CURL始终在那里。

答案 3 :(得分:0)

-X标志与您想要的任何HTTP动词一起使用:

curl -X PUT -H "Content-Type: multipart/form-data;" -d arg=val -d arg2=val2 localhost:8080

此示例还使用-d标志为您的PUT请求提供参数。