【问题标题】:Call External URL from API从 API 调用外部 URL
【发布时间】:2019-10-24 17:13:42
【问题描述】:

当我从 API 调用 URL 时想要从 URL 中获取一些 JSON 数据时,我得到一个验证码页面

我尝试从 JSON 数组中获取数据,但是当我从我的 API 请求它时,我只是得到一个验证码的端点,我只想要一些数据,比如 openPrice、highPrice、price 和 lowPrice。但我只是得到一个验证码表格,而不是 JSON 数组

var express = require("express");
var bodyParser = require("body-parser");
var sql = require("mssql");
var app = express();
var request = require('request');
var useragent = require("express-useragent");
var bloomberg = `https://www.bloomberg.com/markets2/api/quote/CUR/USDMXN%3ACUR?locale=en/`;

//GET API TEST EXCHANGE
app.get("/api/exchange", function(req, res){
  request({
    url: bloomberg,
    json: false
  }, function(err, resu, body){
    if(!err && resu.statusCode === 200){
      res.send(body);
    }
  });
});

我只想带3个数据

{ openPrice: 19.1159, price: 19.1014, lowPrice: 19.0585, highPrice: 19.129, }

【问题讨论】:

    标签: javascript arrays node.js json express


    【解决方案1】:

    这是我在本地主机上测试的:

    • 那个不工作。它不返回任何数据。
    curl https://www.bloomberg.com/markets2/api/quote/CUR/USDMXN%3ACUR?locale=en/
    
    • 那个有效:
    curl https://www.bloomberg.com/markets2/api/quote/CUR/USDMXN%3ACUR?locale=en/ -H "User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36
    

    将 User-Agent 标头设置为:

    Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36"

    或其他被识别为浏览器的用户代理。可能他们会检查 http-client 是机器人还是其他东西 - idk Bloomberg API

    该主题可能对您有用:

    Request: How to set user agent for every request?

    【讨论】:

      猜你喜欢
      • 2018-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-23
      相关资源
      最近更新 更多