使用Rest-client rails

时间:2015-11-24 16:33:22

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

我需要在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'并收到有关语法的错误(错误的参数数量)。 params将在url上,id.to_json将成为身体的一部分。我找不到谈论这个特定用例的文档。

2 个答案:

答案 0 :(得分:1)

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

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

然后使用它来构建整个网址:

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

答案 1 :(得分:0)

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

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