我需要在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将成为身体的一部分。我找不到谈论这个特定用例的文档。
答案 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参数的方法,值得注意的是,您没有以正确的顺序post
将RestClient
参数发送到url , payload, headers
。并且标头可以包含任何其他标签,例如:params
。
rv = RestClient.post(URL,id.to_json,{:params => {:tag =>'TAG'}, :content_type =>'application / json'})