我正在对我的一个控制器进行RestClient api调用,如下所示:
RestClient.get(url,{:secret_key => "abcd"})
但是当我在控制器中打印params时如下:
p params
我在控制器中找不到 secret_key 。从https://github.com/rest-client/rest-client/blob/master/lib/restclient.rb#L71我了解到,如上所述,在RestClient API get调用中传递了头文件参数。
但我不知道如何访问标题。所以,如果有人帮助我解决这个问题,我将非常感激。
答案 0 :(得分:2)
如果你想在params hash中获取secret_key,你可以通过url字符串传递这个参数,如:
url = "http://your.api?secret_key=secret"
RestClient.get(url)
或者如果你想通过标题传递secret_key,你应该:
RestClient.get(url, {"secret_key" => "secret"})
在rails controller中:
secret_key = request.headers["secret_key"]
=> "secret"
答案 1 :(得分:1)
您正在设置标题并检查参数..
因此,第一个参数是请求的参数,第二个是标题
RestClient.get url, {:secret_key => "abcd"}, {:user_agent => user_agent}
如果您只想发送参数
RestClient.get url, :params => {:secret_key => "abcd"}
如果要检查响应标题(RestClient.get(url,{:secret_key => "abcd"})
),请执行
response['secrect_key']
答案 2 :(得分:1)
您可以通过url以这种方式传递http params:
RestClient.get("http://your.api?secret_key=secret")
答案 3 :(得分:0)
对于我的rest-client版本(1.6.7),RestClient.get的签名在第二个参数中指定HTTP HEADER参数:
def self.get(url, headers={}, &block)
Request.execute(:method => :get, :url => url, :headers => headers, &block)
end
我记得RestClient.post的内容是可以指定HTTP HEADER参数而不使用大括号:
RestClient.post(url, :content_type => "application/pdf", :accept => "application/json")
我猜想RestClient.get会以类似的方式工作。