2016-07-13 35 views
1

我試圖在http.get中傳遞查詢。 這工作:我可以在node.js中使用https.get傳遞查詢嗎?

https = require("https"); 
https.get('https://graph.facebook.com/v2.6/1109550759112324/accounts/test-users?access_token=token', 

這導致404:

https = require("https"); 
https.get({ 
    host: 'graph.facebook.com', 
    path: '/v2.6/1109550759112324/accounts/test-users', 
    query: { 
     access_token: 'token' 
    }, 

回答

0

沒有query option執行的請求時,內置在覈心節點的HTTPHTTPS庫。查詢字符串實際上是一個獨立的模塊,稱爲querystring。在這個庫中有函數stringify(),它將接收一個對象並從中創建一個查詢字符串,基本上就是你期待https.get()在你的問題中爲你做的一種方式。

您可以使用querystring.stringify()https.get()像這樣

const https = require('https'); 
const qs = require('querystring'); 

let query = qs.stringify({ access_token: 'token' }); 

https.get({ 
    host: 'graph.facebook.com', 
    path: `/v2.6/1109550759112324/accounts/test-users?${query}`,  
}, (res) => { 
    console.log(`StatusCode: ${res.statusCode}`); 
    let data = ''; 

    res.on('data', (chunk) => { data += chunk; }); 

    res.on('end',() => { 
     // Parsing JSON response 
     data = JSON.parse(data); 

     console.log(`Body: ${JSON.stringify(data, null, 2)}`); 
    }); 
}).on('error', (err) => { 
    console.log(`Error: ${err}`); 
}); 
相關問題