2016-07-13 7 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

要求を実行するときにノードのコアでHTTPまたはHTTPSライブラリーに組み込まれて何のquery optionはありません。クエリ文字列は実際にはquerystringと呼ばれる別個のモジュールです。そのライブラリ内には、という関数があります。この関数は、オブジェクトをとり、その中からクエリ文字列を作成します。つまり、あなたの質問で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}`); 
}); 
よう https.get()querystring.stringify()を使用することができます
関連する問題