问题 如何在bash中执行HTTP PUT?


我正在向第三方API发送请求。它说我必须发送HTTP PUT http://example.com/project?id=projectId

我尝试用PHP curl做这个,但我没有得到服务器的响应。也许我的代码有问题,因为我之前从未使用过PUT。我有办法从bash命令行执行HTTP PUT吗?如果是这样,命令是什么?


9647
2017-12-11 20:12


起源

我问你需要使用PUT吗?我需要使用的只是GET和POST。 - Dimme
您可以使用curl来实现此目的。检查: superuser.com/questions/130009/... - Udo Held
我需要它,因为API说我必须使用它。我不知道为什么。我只是在项目中添加资源 - John
在REST设计中,PUT用于更新现有资源 - 如果您想了解有关原因的更多信息,请参阅此处: en.wikipedia.org/wiki/Representational_state_transfer - asc99c
@ asc99c PUT不只是用于更新,它还用于在客户端知道/设置资源的URI时创建资源 - Arnon Rotem-Gal-Oz


答案:


随着卷曲它会是这样的

curl --request PUT --header "Content-Length: 0" http://website.com/project?id=1

但是像Mattias说的那样你可能也想要身体中的一些数据,所以你也想要内容类型和数据(加上内容长度会更大)


6
2017-12-11 21:48





如果你真的只想使用bash,它实际上有一些网络支持。

 echo -e "PUT /project?id=123 HTTP/1.1\r\nHost: website.com\r\n\r\n" > \
   /dev/tcp/website.com/80

但我想你也想在体内发送一些数据?


6
2017-12-11 21:41