使用curl添加多个查询字符串变量

28
我在使用ModelResource中的authentication = ApiKeyAuthentication()时一直收到401响应。我查看了Django Tastypie:如何使用API密钥进行身份验证,他使用get参数解决了此问题。如果我尝试使用get参数,则会识别用户名但不是api_key!

这在浏览器中有效

http://127.0.0.1:8000/api/v1/spot/8/?username=darren&api_key=9999d318e43b8055ae32d011be5b045ad61dad50

在终端中使用curl发送请求,无法正确传递api_key参数

curl --dump-header - http://127.0.0.1:8000/api/v1/spot/8/?username=darren&api_key=9999d318e43b8055ae32d011be5b045ad61dad50

使用curl并附加2个查询字符串参数,如?username=darren&api_key=9999d318e43b8055ae32d011be5b045ad61dad50时,为什么只会拾取第一个参数?这不是正确的方式吗?

1个回答

85

在命令行中输入 & 代表将前一个命令放到后台运行(感谢 @Maccesch),这意味着 & 后面的任何内容都会被视为新的命令。

尝试使用引号包裹URL。

curl --dump-header - "http://127.0.0.1:8000/api/v1/spot/8/?username=darren&api_key=9999d318e43b8055ae32d011be5b045ad61dad50"


3
你是正确的,& 的意思是在后台运行前面的命令。之后的字符串被视为一个新的命令。 - Maccesch
@Maccesch,谢谢,我有一种感觉,当我在本地VM上运行Apache Solr实例时,就是那样。 - rockingskier
1
根据操作系统和curl构建的不同,可能是单引号或双引号。(在OSX上使用单引号才能使ODATA ?$top=1正常工作。) - Jeremy Murray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接