Ruby on rails 我该如何设置此“进入路边”的格式?
我正在尝试使用某人的API检索数据。这里有一个简单的卷发,效果很好:Ruby on rails 我该如何设置此“进入路边”的格式?,ruby-on-rails,curb,Ruby On Rails,Curb,我正在尝试使用某人的API检索数据。这里有一个简单的卷发,效果很好: $ curl -H 'Authorization: Bearer eyJhbGciOiJSUz...' 'https://app.theirsite.com/api/web/call/call-log?q=\{"pageSize":25,"pageIndex":1,"sortBy":"timeConnected","sortDirection":2,"userAccountId":0,"requestorId":0,"comp
$ curl -H 'Authorization: Bearer eyJhbGciOiJSUz...' 'https://app.theirsite.com/api/web/call/call-log?q=\{"pageSize":25,"pageIndex":1,"sortBy":"timeConnected","sortDirection":2,"userAccountId":0,"requestorId":0,"companyAccountId":99,"consumerId":null,"ticksSince":636959988000000000,"ticksUntil":636966899990000000,"callStatusId":1\}'
注意转义的括号
我不能让它在有路缘的轨道上工作。我尝试了各种方法来格式化url中“?”后面的参数,但没有成功。这是我最后一次尝试:
params = {"pageSize": 25,
"pageIndex": 1,
"sortBy": "timeConnected",
"sortDirection": 2,
"userAccountId": 0,
"requestorId": 0,
"companyAccountId": 99,
"consumerId": nil,
"ticksSince": 636959988000000000,
"ticksUntil": 636966899990000000,
"callStatusId": 1}
params_str = JSON[params].to_s
params_str.insert( -2, '\\')
response = Curl.get("https://app.theirsite.com/api/web/call/call-log?q=\\" + params_str ) {|curl|
curl.headers['Authorization'] = 'Bearer ' + @saved.token
curl.verbose = true}
授权没有问题,但他们的服务器响应时出现500个错误{“全局”:[“索引超出了数组的界限。”]}。这就是在我发现我需要转义括号之前,使用directcurl命令得到的结果。在发送之前,我还没有弄清楚如何让curb提供完整url的输出。那会有帮助的
任何想法。好的,没有答案,但我最终放弃了路缘,转而使用Ruby的net/http 使用上面的参数,它看起来像:
uri = URI.parse("https://app.theirsite.com/api/web/call/call-log?q=" + JSON[params])
request = Net::HTTP::Get.new(uri)
request["Authorization"] = 'Bearer ' + @saved.token
req_options = {
use_ssl: uri.scheme == "https",
}
response = Net::HTTP.start(uri.hostname, uri.port, req_options) do |http|
http.request(request)
end
稍长一点,但没有转义字符,现在一切正常