如何使用Chrome的扩展程序“ Advanced Rest Client”测试REST API


89

按照下面的链接上的说明,我为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指定参数?

Answers:


99

可发现性令人沮丧,但是Advanced Rest Client如何处理基本身份验证是非常聪明的。亚伯拉罕提到的捷径对我不起作用,但是四处寻找它是如何做到的。

您需要做的第一件事是添加Authorization标题: 菜单

然后,当您将value输入聚焦时,会弹出一个漂亮的小东西(请注意右下角的“ construct”框): 构造auth值

单击它会弹出一个框。如果需要,甚至可以进行OAuth! 方便的输入

多田 如果您在单击“构造”时将值字段留空,它将为其添加Basic零件(我想它也会添加必要的OAuth内容,但我没有尝试过,因为我目前的需求是基本的身份验证),因此您无需执行任何操作。 根据需要填写字段


对于基本身份验证-youtube.com/watch?v=1SP1hgm9JqA。在“标题形式”选项卡中,添加标题“授权”。一旦您开始键入,它将自动建议。在值中,单击“编辑(铅笔)”按钮,然后在弹出窗口中键入身份验证凭据。
uutsav

10

从屏幕快照中,我可以看到您要将“用户”和“密码”值传递给服务。您在请求标头部分发送了参数值,这是错误的。这些值在请求正文中发送,而不是在请求标头中发送。而且您的语法是错误的。正确的语法是:{"user":"user_val","password":"password_val"}. 还检查什么是内容类型。它应与您为服务设置的内容类型匹配。


7

这似乎是一个非常老的问题,但我提供了一个答案,以便对他人有所帮助。您可以在窗体部分的第二个屏幕中指定变量,如下所示,或者以RAW格式指定,方法是附加变量,如第二个图像所示。

指定表单变量

以RAW格式指定

如果变量和变量值有效,则应在“响应”部分中看到成功的响应。


如果是GET请求怎么办?
Dejell

我必须显式设置Content-Type标头,其值是:application / x-www-form-urlencoded
shasi kanth

6

基本身份验证通常使用的快捷方式格式为http://username:password@example.com/path。您还将希望在请求中包含accept标头。

在此处输入图片说明


谢谢。我得到的响应包括以下内容:<p> CSRF验证失败。请求中止。</ p>如何解决该请求?
萨奇布·阿里2013年

听起来您不是在击打API端点,而是在击打端点提示以击中JavaScript。
亚伯拉罕2013年

通常,这是一个很好的解决方案-除非您的UID或PWD包含“:”或“ @”符号。
Blamkin86

如果用户名/密码包含保留字符,则可能必须对其进行URL编码。
亚伯拉罕2015年

我试图将您的解决方案用于HTTPS上的GET命令,但是它不起作用。例如user:@ api.com / v2 / shipments它可以卷曲。怎么了?没有密码
Dejell 2015年

3

在标题部分,您必须编写

授权:基本aG9sY67890vbGNpbQ ==

其中basic之后的字符串是您的用户名:密码的64位编码值。获取标头值的php示例是:echo“ Authorization:Basic”。base64_encode(“ myUser:myPassword”);

nb:我认为您的身份验证方法是基本的。也可以不同。


该问题专门询问如何在Chrome扩展Advanced Rest Client中进行操作。
绍纳

Shauna的答案是正确的,应该是公认的答案,但是sharif的这一评论对于那些想知道Chrome Advanced Rest客户端为您的用户和密码进行编码的人也很有用。谢谢。
Deemoe 2014年


0

解决此身份验证问题的简单方法是使用Fiddler窃取身份验证令牌。

脚步

  1. 启动小提琴手和浏览器。
  2. 导航浏览器以打开Web应用程序(网站)并执行所需的身份验证。
  3. 打开Fiddler,然后单击HTTP 200 HTML页面请求。 使用Fiddler捕获cookie值
  4. 在右窗格中,从请求标头复制cookie标头参数值。 在此处输入图片说明
  5. 打开REST Client,然后单击“页眉窗体”选项卡,并从剪贴板提供cookie值。

单击发送按钮,它将获取结果。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.