我正在尝试向Instagram API发出请求,我很难理解为什么http.request hostname参数来自选项。
然而,这是我的代码:
const http = require("http");
const https = require("https");
function requestInstagramData(){
var options = {
protocol: "https:",
hostname: "https://api.instagram.com",
path: "/v1/tags/fashion?access_token=3681332213.81b69f2.88020902f003411196c3f4423912f547",
method: "GET"
};
var instaRequest = https.request(options);
instaRequest.on("response", function(res){
res.on("data", function(data){
console.log("data has arrived");
});
console.log("response");
console.log(res.statusCode);
console.log(res.statusMessage);
});
instaRequest.end();
}
requestInstagramData();
此代码不起作用,但如果我将options对象中的主机名更改为
hostname: "api.instagram.com"
它正在发挥作用。
为什么?
答案 0 :(得分:3)
答案 1 :(得分:1)
正如您在尝试" api.instagram.com"时已经发现的那样, hostname 属性仅用于指定主机,并且根据定义,主机名不包括协议。该协议进入协议属性,就像您已经完成的那样。