如何调试/显示使用RestClient发送的请求

use*_*906 35 ruby debugging http rest-client

我正在尝试使用RestClient使用post方法访问Web服务.我正在发送指定的授权令牌,但我仍然收到403状态错误,这意味着我被禁止使用该API.有什么方法可以看到使用http post发送的请求,以便我可以验证标头?我无法找到任何示例或任何文件提及如何做到这一点?

我的代码与此类似:

token = get_token

response = RestClient.post "https://api-dev.xxx.com/software/services/search/ABC",
  :authorization => "Bearer #{token}"
Run Code Online (Sandbox Code Playgroud)

Mar*_*tuc 56

如果您正在进行更多的REPL开发,那么它就像添加一样简单

RestClient.log = 'stdout'
Run Code Online (Sandbox Code Playgroud)

你的代码.

您可以在文档中找到其他有效值.

  • 我没有看到POST请求的正文. (12认同)

Kos*_*sis 26

您可以尝试启用RestClient日志记录,看看它是否提供了任何有用的输出:

RESTCLIENT_LOG=stdout path/to/my/program
Run Code Online (Sandbox Code Playgroud)

或者如果你使用Rails

RESTCLIENT_LOG=stdout bundle exec passenger
Run Code Online (Sandbox Code Playgroud)

替换passenger您选择的服务器.这会将所有日志记录重定向到标准输出(您的控制台).

我个人更喜欢在需要检查或排除HTTP请求时使用更详细的工具.

您可以尝试curl或者wget如果您更喜欢命令行,或者可以轻松执行请求的众多浏览器扩展之一,检查输出,保存以供将来使用,设置不同的环境等.PostmanAdvanced REST Client都是不错的选择.

  • 刚开始因为它让我感到困惑,如果您使用的是heroku,这也是这样做的方法。只需使用`heroku config:set RESTCLIENT_LOG = stdout` (2认同)