首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Node.js
Express
PPA for Ubuntu
ppa:chris-lea/node.js
Coding
V2EX  ›  Node.js

为什么同样的在浏览球和 postman 中可以请求到,而在本地 nodejs 代码中请求不到?

  •  1
     
  •   yuang · 36 天前 · 2950 次点击
    这是一个创建于 36 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我有这样一个请求: 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 条附言  ·  36 天前
    已确定是代理问题,需要在代码中添加 proxy,即可访问到。不得不说 pinterest 的 api 真是难用,一小时只能请求 5 次。。。
    ```js
    const options = {
    method: "GET",
    url: "https://api.pinterest.com/v1/me",
    qs: {
    access_token: String(userToken)
    },
    // tslint:disable-next-line: no-http-string
    proxy: "http://127.0.0.1:10887"
    };
    ```
    7 回复  |  直到 2019-11-09 18:06:19 +08:00
        1
    nannanziyu   36 天前   ♥ 1
    因为你浏览器开代理了
        2
    zyl423   36 天前
    抓个包看看请求有什么不同
        3
    opengps   36 天前 via Android   ♥ 1
    useragent 是防爬虫最简单的做法,你没修改就等同于告诉对方你是爬虫
        4
    chuxiaonan   36 天前   ♥ 1
    有没有可能是 HTTPS 认证的问题 原因可能出在 nodejs 版本不支持 HTTPS 认证 gcc 版本过低 或者其他什么方面
    之前在公司服务器上遇到过 重新打个新 docker 就 OK 了
        5
    photon006   36 天前   ♥ 1
    不要相信自己的封装能力,用现成的 request、superagent 库
        6
    yuang   36 天前
    @photon006 感谢,使用 request 库并设置代理已解决问题。
        7
    yuang   36 天前
    @nannanziyu 确实是代理问题
    @zyl423 不懂如何抓包
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1178 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 24ms · UTC 23:36 · PVG 07:36 · LAX 15:36 · JFK 18:36
    ♥ Do have faith in what you're doing.