首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >CURL命令行URL参数

CURL命令行URL参数
EN

Stack Overflow用户
提问于 2012-11-14 08:30:46
回答 2查看 564.4K关注 0票数 228

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

代码语言:javascript
复制
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应用程序。谁能指出我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-14 08:41:02

application/x-www-form-urlencoded内容类型标头不是必需的(好吧,看情况而定)。除非请求处理程序需要来自窗体主体的参数。试试看:

代码语言:javascript
复制
curl -X DELETE "http://localhost:5000/locations?id=3"

代码语言:javascript
复制
curl -X GET "http://localhost:5000/locations?id=3"
票数 331
EN

Stack Overflow用户

发布于 2013-01-12 02:34:40

Felipsmartins是正确的。

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

这意味着你可以这样做:

代码语言:javascript
复制
curl -X DELETE -G 'http://localhost:5000/locations' -d 'id=3'

这里有点傻,但是当你在命令行上,你有很多参数,它会整洁得多。

我之所以这样说,是因为cURL命令通常很长,因此值得将其放在多个行上,以换行。

代码语言:javascript
复制
curl -X DELETE -G \
'http://localhost:5000/locations' \
-d id=3 \
-d name=Mario \
-d surname=Bros

如果使用zsh,这显然要舒服得多。我的意思是,当您需要重新编辑前面的命令时,因为zsh允许您逐行执行。(只是说说而已)

希望能有所帮助。

票数 192
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13371284

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档