如何从Skyscanner API post请求中检索Session密钥 – Ruby

在我的应用程序中,我想通过Flight Details获取实时价格,因为我使用了SkyScanner API 。 我在获取数据之前已经阅读了文档,我必须创建实时定价服务会话。 可以通过对api的post请求创建,然后通过使用此SessionKeyapiKey提供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 

在控制台我得到

  # 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"