我正在尝试使用CURL发送一个带有url参数的DELETE
请求。我正在做:
curl -H application/x-www-form-urlencoded -X DELETE http://localhost:5000/locations` -d 'id=3'
但是,服务器没有看到参数id = 3。我尝试使用一些图形用户界面应用程序,当我将url作为:http://localhost:5000/locations?id=3
传递时,它可以工作。我真的更喜欢使用CURL,而不是这个GUI应用程序。谁能指出我做错了什么?
发布于 2012-11-14 08:41:02
application/x-www-form-urlencoded
内容类型标头不是必需的(好吧,看情况而定)。除非请求处理程序需要来自窗体主体的参数。试试看:
curl -X DELETE "http://localhost:5000/locations?id=3"
或
curl -X GET "http://localhost:5000/locations?id=3"
发布于 2013-01-12 02:34:40
Felipsmartins是正确的。
值得一提的是,这是因为如果这不是POST请求,则不能真正使用-d/--data选项。但是,如果您使用-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允许您逐行执行。(只是说说而已)
希望能有所帮助。
https://stackoverflow.com/questions/13371284
复制相似问题