为什么我尝试获取数据时NPS Api返回503

时间:2018-07-15 00:08:15

标签: javascript node.js https

我正在尝试从国家公园管理局的API获取公园信息,但是res.on('data')从未被调用,并且我收到的错误代码为503。该API没有太多文档而且我没有使用API​​的丰富经验,因此可能会遗漏一些小而明显的东西。

let getPark = (parkCode, cb) => {
  let url = `https://developer.nps.gov/api/v1/parks? 
             parkCode=${parkCode}&api_key=${apiKey}`;

  https.get(url, (res) => {
    console.log(res.statusCode);
    var body = '';

    res.on('data', (chunk) => {
      body += chunk;
    });

    res.on('end', () => {
      cb(body);
    });
  });
};

2 个答案:

答案 0 :(得分:0)

任何5xx错误表示服务器应用程序由于某种原因而失败。在https://en.wikipedia.org/wiki/List_of_HTTP_status_codes#5xx_Server_errors

上查看状态码定义

就您而言,我认为您应该查看您的url变量。您使用模板文字的方式导致额外的空白,并在变量中存储了新行。这可能导致api服务器出现故障。

尝试以下方法:

$ awk -v OFS='\t' 'NR==FNR{b[$1]=$2;next} {$1=$1; print $0, b[$1], ($2==b[$1] ? "" : "no ") "match"}' B.txt A.txt
api     2.3     4.3     no match
java    3.3     4.5     no match

答案 1 :(得分:0)

在打印出res.statusCode的同时,您也可以打印出503。当我这样做时,我得到res.statusMessage

当我尝试statusMessage: 'Service Temporarily Unavailable'他们给我的示例网址时,我会得到相同的结果。因此,我认为这不是您的代码。每两次发送给我一个html页面。也许还没准备好迎接黄金时段?