Как использовать символ с "." в URL с Alphavantage?

Я использую Alpha Vantage API и сталкиваюсь с проблемой, каждый раз, когда я пытаюсь отправить запрос API, где символ (тикер) имеет "." в этом вызов API возвращает ошибку вызова API Invalid.

Как мне пройти это?

Например, для поиска BT Group на Лондонской фондовой бирже вы должны использовать "LON:BT.A", который, как я ожидаю, сформулирует URL, как показано ниже:

https://www.alphavantage.co/query?function=TIME_SERIES_MONTHLY&symbol=LON:BT.A&apikey=API_KEY

Это не работает, но в равной степени, если я хотел найти тикер без точки, то он работает отлично, например, Sky plc "LON:SKY", поэтому работает ниже:

https://www.alphavantage.co/query?function=TIME_SERIES_MONTHLY&symbol=LON:SKY&apikey=API_KEY

1 ответ

Большинство тикеров, которые имеют "." в них, кажется, требуется, чтобы вы заменили их на "-", так что это сработало для меня, однако я обнаружил, что это не всегда так. Я не смог найти никакой документации с полным списком тикеров (наверное, потому, что она динамическая), поэтому перестал использовать API.

Вы можете URL-кодировать точку как %2E, Та же техника, что и при кодировании пространства %20, Ваш URL будет выглядеть так с закодированной точкой:

https://www.alphavantage.co/query?function=TIME_SERIES_MONTHLY&symbol=LON:BT%2EA&apikey=API_KEY

Более подробную информацию о URL-кодировке можно найти здесь:
https://www.w3schools.com/tags/ref_urlencode.asp

Все еще задаюсь вопросом, почему обычная точка не допускается в URL. Думаю, что веб-сервер просто не может справиться с этим. В соответствии с RFC3986 параграф 2.3 разрешены точки и не имеют никакого особого значения.

Другие вопросы по тегам