【问题标题】:Add parameters to post request with Rest-client rails使用 Rest-client rails 添加参数以发布请求
【发布时间】:2015-11-24 16:33:22
【问题描述】:

我需要在我的 rails 后端使用 Rest-Client 发出 Post 请求。我可以通过以下方式成功做到这一点:rv = RestClient.post URL, id.to_json, :content_type => 'application/json'

我需要添加一个标记参数,但无法使其工作。我尝试了以下不同组合:rv = RestClient.post URL, {:params => {:tag => 'TAG'}}, id.to_json, :content_type => 'application/json' 并收到有关语法的错误(参数数量错误)。参数将在 url 上进行,id.to_json 将成为正文的一部分。我找不到有关此特定用例的文档。

【问题讨论】:

  • 请添加您发送帖子的控制器代码和您的 routes.rb 文件
  • 这将是一个外部请求。服务没有问题,它为调用正确设置了语法。

标签: ruby-on-rails json rest rest-client


【解决方案1】:

您可以使用 to_query 将哈希转换为 HTTP 查询字符串,如下所示:

url_params = {:tag => "TAG"}.to_query
=> "tag=TAG" 

然后就用它来构建你的整个 URL:

rv = RestClient.post "#{URL}?#{url_params}", id.to_json, :content_type => 'application/json'

【讨论】:

    【解决方案2】:

    还有另一种方法可以在请求中添加url参数,需要注意的是,您没有将post参数以正确的顺序发送到RestClient,即url , payload, headers。并且标头可以包含任何其他标签,例如:params

    rv = RestClient.post(URL, id.to_json, {:params => {:tag => 'TAG'}, :content_type => '应用程序/json' })

    【讨论】:

      猜你喜欢
      • 2013-09-12
      • 2012-09-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-01-23
      • 2011-11-22
      • 1970-01-01
      相关资源
      最近更新 更多