【问题标题】:How to send data in a post request with RestClient如何使用 RestClient 在 post 请求中发送数据
【发布时间】:2015-10-25 01:12:08
【问题描述】:

我正在尝试使用 RestClient Ruby gem 来模拟 curl 请求,到目前为止,我在尝试发送有效负载时遇到了很多麻烦。我的 curl 请求看起来像这样

curl URL -X POST -u API_KEY -d '{"param_1": "1"}'

我一直在尝试用 RestClient 复制这个:

RestClient::Request.execute(method: :post, url: URL, user: API_KEY, payload: {"param_1" => "1"})

唉,我在执行此操作时不断收到 400 - Bad Requests 错误。我是否通过错误的方式发送数据?我应该使用负载以外的东西吗?

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-4 curl rest-client


    【解决方案1】:

    变化:

    payload: {"param_1" => "1"})
    

    收件人:

    payload: '{"param_1": "1"})'
    

    另外,指定headers

    所以,它变成:

    RestClient::Request.execute(method: :post,
                                url: 'your_url',
                                user: 'API_KEY',
                                payload: '{"param_1": "1"}',
                                headers: {"Content-Type" => "application/json"}
                               )
    

    【讨论】:

    • 使用 cURL 一切正常。我很好奇如何使用 RestClient 进行等效查询
    • 感谢您的帮助!最终,我不得不传入一个参数来澄清我的数据是以 JSON 格式发送的。
    • 是的,您还有另一个问题,即您的 payload 不是字符串,而是哈希。我的回答解决了这个问题。另外,如果它不起作用,那么我会告诉您将headers 选项添加到请求中。但是你已经这样做了,这很棒:)
    • 我认为你必须将有效负载:'{"param_1" => "1"}' 切换为有效负载:'{"param_1" : "1"}'。如果你改变它,我会接受你的回答!
    【解决方案2】:

    只是改变:

    payload: {"param_1" => "1"}
    

    收件人:

    payload: {"param_1" => "1"}.to_json
    

    那么,就变成了:

    RestClient::Request.execute(method: :post,
                                url: 'your_url',
                                user: 'API_KEY',
                                payload: {"param_1" => "1"}.to_json,
                                headers: {"Content-Type" => "application/json"}
                               )
    

    【讨论】:

      【解决方案3】:

      原来我必须添加一个参数来指定我的数据是 JSON 格式。正确的答案是这样的: RestClient::Request.execute(method: :post, url: URL, user: API_KEY, payload: '{"param_1": "1"}', headers: {"Content-Type" => "application/json"})

      【讨论】:

      • 您可以勾选@K M Rakibul Islam 的答案; Rboling
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-04
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多