0

我需要一些帮助来调用 AlphaVantage 股票市场 API。在大多数情况下,它运行良好,但在从股票代码中有^符号的股票中请求数据时,就会出现问题。

我使用以下代码得到 API 响应:

var url = "https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=^vvix&apikey=<KEY>", 
   response = UrlFetchApp.fetch(url),
   json = JSON.parse(response);
Logger.log(json);

并得到这个错误:

无效参数:https ://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&

请求股票的股票代码是^vvixvix如果我用类似(另一个有效的股票代码)替换符号,则代码有效。因此,我假设错误与^标志有关,但^标志是股票代码的一部分。

如果我使用

=IMPORTDATA("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=^vvix&apikey=K9D4PO855OG03KNM")

作为 Google 表格公式,这^不是问题,并且可以检索数据

区别在哪里?

^JavaScript 字符串中有无效字符吗?
知道有什么问题吗?

4

1 回答 1

1

插入符号 ("^") 不是有效的 URL 字符,如果您遵循 IETF 的建议,则必须进行百分比编码。这是 RFC1738 中定义的“不安全”字符之一

%5E代替^. _

更一般地,将符号包装为:

encodeURI(symbol)
于 2018-09-04T09:39:36.643 回答