Httparty 请求查询未正确解析
Httparty request query not parsed properly
我想将一些查询参数传递给 HTTParty.get
。我有一个处理请求的辅助方法
def handle_request
begin
response = yield
if response['Success']
response['Payload']
else
raise Bondora::Error::ApiError, "#{response['Errors'][0]['Code']}: #{response['Errors'][0]['Message']}"
end
rescue Net::OpenTimeout, Net::ReadTimeout
{}
end
end
另一种发出请求的方法:
def investments(*params)
handle_request do
url = '/account/investments'
self.class.get(url, :query => params)
end
end
当我像 investments({"User" => "test"})
这样调用此方法时,我应该以对 /account/investments?User=test
的 GET 请求结束。
不幸的是,请求参数没有被正确解析,结果请求如下所示:/account/balance?[{%22User%22=%3E%22test%22}]
知道为什么会这样吗?我觉得和我写的方法有关系
当您将方法声明为 def investments(*params)
时,params
将包含一个 数组 个参数,并且想要传递一个 散列 接听您的 get
电话。因此,要么删除星号并简单地说 def investments(params)
,要么稍后在方法中使用 query: params.first
。
我想将一些查询参数传递给 HTTParty.get
。我有一个处理请求的辅助方法
def handle_request
begin
response = yield
if response['Success']
response['Payload']
else
raise Bondora::Error::ApiError, "#{response['Errors'][0]['Code']}: #{response['Errors'][0]['Message']}"
end
rescue Net::OpenTimeout, Net::ReadTimeout
{}
end
end
另一种发出请求的方法:
def investments(*params)
handle_request do
url = '/account/investments'
self.class.get(url, :query => params)
end
end
当我像 investments({"User" => "test"})
这样调用此方法时,我应该以对 /account/investments?User=test
的 GET 请求结束。
不幸的是,请求参数没有被正确解析,结果请求如下所示:/account/balance?[{%22User%22=%3E%22test%22}]
知道为什么会这样吗?我觉得和我写的方法有关系
当您将方法声明为 def investments(*params)
时,params
将包含一个 数组 个参数,并且想要传递一个 散列 接听您的 get
电话。因此,要么删除星号并简单地说 def investments(params)
,要么稍后在方法中使用 query: params.first
。