按照以下链接的说明,我成功为我的Django应用程序构建了一个REST API:http://django-rest-framework.org/tutorial/quickstart。
我可以通过在Unix提示符下执行以下操作来测试它:
curl -H 'Accept: application/json; indent=4' -u root:myPassword http://www.myWebsite.com/users/
有效:)
但是,我想使用Chrome扩展程序Advanced Rest Client来测试相同的功能。 我已经安装了扩展程序,但我不知道在哪里/如何放置字段。当我做出受过教育的猜测时(如截图中所示),它拒绝接受“未提供身份验证凭据”的说法
我应该如何/在何处将参数指定给REST API?
答案 0 :(得分:98)
可发现性令人沮丧,但Advanced Rest Client处理基本身份验证的方式非常巧妙。提到的亚伯拉罕的捷径对我来说并不起作用,但是有点蠢蠢欲动地揭示了它是如何做到的。
您需要做的第一件事是添加Authorization
标头:
然后,当您关注value
输入时,会弹出一个漂亮的小东西(请注意右下方的“构造”框):
点击它会弹出一个方框。如果你愿意,它甚至可以做OAuth!
多田!如果在单击“构造”时将值字段留空,则会向其添加Basic
部分(我假设它也会添加必要的OAuth内容,但我没有尝试,因为我的当前需要用于基本身份验证),因此您无需执行任何操作。
答案 1 :(得分:10)
从屏幕截图中我可以看到您想要将“user”和“password”值传递给服务。您已在请求标头部分中发送了错误的参数值。
值在请求正文中发送,而不是在请求标头中发送。
你的语法也错了。
正确的语法是:{"user":"user_val","password":"password_val"}.
还要检查内容类型是什么。它应与您为服务设置的内容类型相匹配。
答案 2 :(得分:7)
这似乎是一个非常古老的问题,但我提供了一个答案,以便它可以帮助其他人。 您可以在表单部分的第二个屏幕中指定变量,如下所示或在 通过附加第二张图像中显示的变量来生成RAW格式。
如果您的变量和变量值有效,您应该在响应部分看到成功的响应。
答案 3 :(得分:6)
通常用于基本身份验证的快捷方式格式为http://username:password@example.com/path
。您还需要在请求中包含accept标头。
答案 4 :(得分:3)
你必须写
授权:基本aG9sY67890vbGNpbQ ==
其中string之后的字符串是用户名:密码的64位编码值。 php获取标头值的示例是: echo“授权:基本”。 BASE64_ENCODE( “MYUSER:MYPASSWORD”);
n.b:我认为您的身份验证方法是基本的。也可以是不同的。
答案 5 :(得分:3)
答案 6 :(得分:0)
解决此身份验证问题的简便方法是使用Fiddler窃取身份验证令牌。
步骤
答案 7 :(得分:0)
使用最新的ARC for GET请求需要添加身份验证 一个名为Authorization:authtoken的原始标题。
请找到屏幕截图Get request with authentication and query params
要添加查询参数,请单击URL框左侧的下拉箭头。