RestClient使用auth_token获取

时间:2013-11-15 10:41:51

标签: ruby-on-rails basic-authentication rest-client

我是RestClient的新手,但我在网上深入搜索,找不到任何帮助。

我的代码如下,并且正在运行,但我正在寻找更优雅的东西:

def get_from_mgmt(sub_path, par)

  par += "&" unless par.empty?
  path = ":http//#{USER}:#{PASSWORD}@#{HOST}/#{sub_path}.json?#{par}auth_token=#{AUTH_TOKEN}"
  single_page = JSON.parse(RestClient.get path)

end

我在互联网上发现了以下内容:

response = RestClient::Request.new(
:method => :get,
:url => @my_url + "/" + path.to_s,
:user => @my_user,
:password => @my_pass,
:headers => { :accept => :json,
:content_type => :json }
).execute
results = JSON.parse(response.to_str)

我喜欢它,但我不明白在哪里添加AUTH_TOKEN和其他参数。我已经尝试在头文件中添加auth_token,但是在初始化内部。

欢迎任何帮助! 谢谢。

1 个答案:

答案 0 :(得分:1)

好的,终于找到了。我必须将参数和auth_token(也被视为参数)放在:payload

response = RestClient::Request.new(
     :method => :get,
     :url => base_url + "/" + sub_path,
     :user => user,
     :password => pwd,
     :headers => {:accept => :json,
                  :content_type => :json},
     :payload => {:auth_token => auth_token}.merge(par)
).execute

其中par是参数的哈希值。就我而言par = {:states = "fail"}