我有这样一个请求: https://api.pinterest.com/v1/me/pins/?access_token=xyz,access_token 是有效的,直接粘贴在浏览器地址栏或 postman 中可以访问到,但是使用 如下代码
// test.js
var http = require("https");
var options = {
"method": "GET",
"hostname": "api.pinterest.com",
"port": null,
"path": "/v1/me/pins?access_token=xyz",
};
var req = http.request(options, function (res) {
var chunks = [];
res.on("data", function (chunk) {
chunks.push(chunk);
});
res.on("end", function () {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
});
req.end();
使用 node test.js 运行时报这样的错:
errno: 'ETIMEDOUT',
code: 'ETIMEDOUT',
syscall: 'connect',
address: '173.252.102.241',
port: 443
请教各位 v 友指点迷津,感谢。
1
nannanziyu 2019-11-09 15:12:38 +08:00 1
因为你浏览器开代理了
|
2
zyl423 2019-11-09 15:13:04 +08:00
抓个包看看请求有什么不同
|
3
opengps 2019-11-09 15:15:24 +08:00 via Android 1
useragent 是防爬虫最简单的做法,你没修改就等同于告诉对方你是爬虫
|
4
chuxiaonan 2019-11-09 15:16:24 +08:00 1
有没有可能是 HTTPS 认证的问题 原因可能出在 nodejs 版本不支持 HTTPS 认证 gcc 版本过低 或者其他什么方面
之前在公司服务器上遇到过 重新打个新 docker 就 OK 了 |
5
photon006 2019-11-09 15:47:50 +08:00 1
不要相信自己的封装能力,用现成的 request、superagent 库
|
7
yuang OP |