Получить информацию API для акций с ^ в названии тикера
Мне нужна помощь в вызове API фондового рынка AlphaVantage. По большей части это работает хорошо, но когда дело доходит до запроса данных от акций, которые имеют ^
символ в их тикере, что-то идет не так.
Я получаю ответ 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&;
Символ тикера запрашиваемого запаса ^vvix
, Если я заменю символ как vix
(еще один действительный тикер) код работает. Таким образом, я предполагаю, что ошибка как-то связана с ^
знак, но ^
знак является частью символа тикера.
Если я использую
=IMPORTDATA("https://www.alphavantage.co/query?function=TIME_SERIES_DAILY_ADJUSTED&symbol=^vvix&apikey=K9D4PO855OG03KNM")
в качестве формулы Google Sheets, ^
это не проблема, и данные извлекаются
В чем разница?
Является ^
недопустимый символ в строке JavaScript?
Есть идеи, в чем проблема?
1 ответ
Символ каретки ("^") НЕ является допустимым символом URL и должен кодироваться в процентах, если вы следуете рекомендациям IETF. Это один из "небезопасных" символов, определенных в RFC1738
использование %5E
на месте ^
,
В общем, оберните символ с помощью:
encodeURI(symbol)