![](/img/trans.png)
[英]Ruby On Rails : How to retrieve data from database on ajax request
[英]How to retrieve Session key from Skyscanner API post request - Ruby
在我的应用程序中,我想通过航班详细信息获取实时价格,因为我使用了SkyScanner API 。 我在获取数据之前已经阅读了文档,我必须创建实时定价服务会话。 可以通过对api的post请求创建,然后通过使用此SessionKey
和apiKey
提供SessionKey
我可以重新获取数据。 那么如何获得Sessionkey,因为我知道它必须由API服务器提供。
这是我的尝试:
require 'json'
require 'net/http'
require 'uri'
post_params = {
:apiKey => "[API_KEY]",
:country => "GB",
:currency => "GBP",
:locale => "en-GB",
:adults =>1,
:children => 0,
:infants => 0,
:originplace => '11235',
:destinationplace => '13554',
:outbounddate => '2015-05-19',
:inbounddate => '2015-05-26',
:locationschema => 'Default',
:cabinclass => 'Economy',
:groupPricing => true
}
sessionkey_request = Net::HTTP.post_form(URI.parse('http://partners.api.skyscanner.net/apiservices/pricing/v1.0'), post_params )
get_data= "http://partners.api.skyscanner.net/apiservices/pricing/v1.0/?apiKey=[API_KEY]"
puts sessionkey_request.inspect
temp = Net::HTTP.get_response(URI.parse(get_data)).body
# puts temp
在控制台我得到
<Net::HTTPCreated 201 Created readbody=true> # sessionkey_request.inspect
没有它就没有得到SessionKey我无法检索数据。 请指导我错误的地方。 我很感激解决方案。
更多细节和实时结果通过API 检查演示
注意:我已经检查了gem'skyscanner'但它没有为Live Price提供任何方法。 它提供Browse Cache方法。
根据文件:
成功的回复不包含任何内容。 轮询预订详细信息的URL在响应的Location标头中指定
试试这个:
sessionkey_request["location"]
我在我的系统上测试了它并返回给我:
http://partners.api.skyscanner.net/apiservices/pricing/v1.0/8e28260becd3441ca4e865396e224e7d_ecilpojl_EC71481935CEBB7EAF661BC24940D01D
最后一部分是您可以用于GET
请求的sessionKey
。 如果您只想要最后一个部分(sessionKey),那么您可以通过以下方式检索它:
> url = "http://partners.api.skyscanner.net/apiservices/pricing/v1.0/8e28260becd3441ca4e865396e224e7d_ecilpojl_EC71481935CEBB7EAF661BC24940D01D"
> url.split('/').last
=> "8e28260becd3441ca4e865396e224e7d_ecilpojl_EC71481935CEBB7EAF661BC24940D01D"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.