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

How to test REST API using Chrome's extension “Advanced Rest Client”

按照以下链接的说明,我成功地为我的Django应用程序构建了一个REST API:http://django-rest-framework.org/tutorial/quickstart。

我可以通过在Unix提示符下执行以下操作来测试它:

1
curl -H 'Accept: application/json; indent=4' -u root:myPassword http://www.myWebsite.com/users/

有用 :)

但是,我想使用Chrome扩展程序Advanced Rest Client来测试相同的功能。
我已经安装了扩展程序,但我不知道在哪里/如何放置字段。 当我做出受过教育的猜测时(正如您在屏幕截图中看到的那样),它拒绝它说"未提供身份验证凭据"

screenshot of failing request

我应该如何/在何处将参数指定给REST API?


可发现性令人沮丧,但Advanced Rest Client处理基本身份验证的方式非常巧妙。提到的亚伯拉罕的捷径对我来说并不起作用,但是一点点的探讨就揭示了它是如何做到的。

您需要做的第一件事是添加Authorization标头:
menus

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

单击它将弹出一个框。如果你愿意,它甚至可以做OAuth!
convenient inputs

田田!如果在单击"构造"时将值字段留空,则会将Basic部分添加到其中(我假设它也会添加必要的OAuth内容,但我没有尝试,因为我目前需要是基本身份验证),所以你不需要做任何事情。
fills in the field as needed


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


这似乎是一个非常古老的问题,但我提供了一个答案,以便它可以帮助其他人。
您可以在表单部分的第二个屏幕中指定变量,如下所示或在
通过附加第二个图像中显示的变量来生成RAW格式。

Specify Form Variables

Specify in RAW format

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


通常用于基本身份验证的快捷方式格式为http://username:[email protected]/path。您还需要在请求中包含accept标头。

enter image description here


添加授权标题并单击铅笔按钮以输入用户名和密码

enter image description here


在标题部分你必须写

授权:基本aG9sY67890vbGNpbQ ==

其中string之后的字符串是用户名:密码的64位编码值。
php获取标头值的示例是:
echo"授权:基本"。 BASE64_ENCODE("MYUSER:MYPASSWORD");

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


使用最新的ARC for GET请求需要添加身份验证
名为Authorization:authtoken的原始标头。

请在屏幕截图中找到带有身份验证和查询参数的Get请求

要添加Query参数,请单击URL框左侧的下拉箭头。


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

脚步

  • 启动提琴手和浏览器。
  • 浏览浏览器以打开Web应用程序(网站)并执行操作
    要求的认证。
  • 打开Fiddler并单击HTTP 200 HTML页面请求。
    Capturing cookie value using Fiddler
  • 在右侧窗格中,从请求标头中复制cookie标头
    参数值。
    enter image description here
  • 打开REST Client,然后单击"Header form"选项卡并提供
    剪贴板的cookie值。
  • 单击SEND按钮,它将获取结果。