CURL命令行URL参数

我想用CURL发送一个带有url参数的DELETE请求。 我在做:

 curl -H application/x-www-form-urlencoded -X DELETE http://localhost:5000/locations` -d 'id=3' 

但是,服务器没有看到参数id = 3。我尝试使用一些GUI应用程序,当我通过URL为: http://localhost:5000/locations?id=3 ,它的工作原理。 我真的宁愿使用CURL而不是这个GUI应用程序。 任何人都可以指出我做错了什么?

“application / x-www-form-urlencoded”标题,为什么? 试试看:

 curl -X DELETE 'http://localhost:5000/locations?id=3' 

要么

 curl -X GET 'http://localhost:5000/locations?id=3' 

Felipsmartins是正确的。

值得一提的是,这是因为如果这不是POST请求,你不能真正使用-d / – 数据选项。 但是如果使用-G选项,这仍然是可能的。

这意味着你可以这样做:

 curl -X DELETE -G 'http://localhost:5000/locations' -d 'id=3' 

这里有点傻,但是当你在命令行上,并且你有很多参数的时候,它会更加整洁。

我是这样说的,因为cURL命令通常很长,所以值得在不止一行上跳过换行符。

 curl -X DELETE -G \ 'http://localhost:5000/locations' \ -d id=3 \ -d name=Mario \ -d surname=Bros 

如果您使用zsh,这显然更舒适。 我的意思是当你需要重新编辑以前的命令,因为zsh让你一行一行。 (只是说)

希望能帮助到你。

如果你的参数是一个数字,那么你也可以这样做:

curl -X DELETE localhost:5000/locations/3

3 ”是你的参数