2016-11-18 95 views
0

我想在我的節點JS的應用程序做這樣的事情創建一個會話時:Skyscanner上的415狀態碼創建會話

import * as request from 'request'; 
const apiKey = '123123123123123123'; 
const urlApi = 'http://partners.api.skyscanner.net/apiservices/pricing/v1.0?apikey=' + apiKey; 

const headers = { 
        'Accept': 'application/json', 
        'Content-Type': 'application/x-www-form-urlencoded' 
       }; 

var options = { 
       url: urlApi, 
       method: 'POST', 
       headers: headers, 
       data: { 
        country: 'UK', 
        currency: 'GBP', 
        locale: 'en-GB', 
        locationSchema: 'iata', 
        apikey: '123123123123123123', 
        grouppricing: 'on', 
        originplace: 'EDI', 
        destinationplace: 'LHR', 
        outbounddate: '2016-12-29', 
        inbounddate: '2016-12-05', 
        adults: 1, 
        children: 0, 
        infants: 0, 
        cabinclass: 'Economy' 
       } 
}; 

request.post(options, function(error: Error, response: any, body: any) 
{ 
    if (!error && response.statusCode === 415) { 
     console.log('Error: ' + response.statusCode); 
    } 
    else { 
     console.log(response.statusCode); 
    } 
}); 

但是,它總是返回的StatusCode 415.我從這裏的文檔以下https://support.business.skyscanner.net/hc/en-us/articles/211308489-Flights-Live-Pricing但我到目前爲止還沒有運氣...

+1

您的網址中有錯字。它應該是/v1.0/?apiKey= ..... –

+0

我有完全相同的問題。你能找到解決這個問題的辦法嗎?如果可以更新你的帖子,那會很好。 –

回答

0

當我發佈我的問題後,我找到了我錯過的請求的原因。我在url中使用了查詢,但是您需要將它們置於帖子正文中,方法是將正文替換爲屬性數據。我想你也需要在請求選項中使用json:true。

考慮https://github.com/request/request#requestoptions-callback