所以,我想要做的是从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请求?
我不想使用任何外部程序....我不想下载或安装任何东西。还有其他方法吗?
答案 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请求提供参数。