По какой-то причине провода никогда не пересекались должным образом; поскольку вы можете импортировать XML в Excel прямо из URL-адреса, нет необходимости использовать WINHTTP для выполнения простых запросов веб-службы REST.
Первоначально я начал использовать эту технику после просмотра кода Amazon Web Services, который использует WinHTTP, однако это необязательно только для запроса XML из веб-службы.
Доказательство концепции: вот простой пример использования Yahoo News Search API для получения последних новостей Yahoo о «Dan Rather» в Excel. Для этого требуется версия Excel, поддерживающая XML:
1. Выделите затем Скопируйте этот URl:
http://api.search.yahoo.com/WebSearchService/V1/webSearch?appid=YahooDemo&query=Dan+Rather&results=10
2. В Excel перейдите в Data-> XML-> Import.
3. В поле «Имя файла» используйте сочетание клавиш «Вставить» (CTRL-V), чтобы ввести только что скопированный URL-адрес, и нажмите «Ввод».
4. Excel предложит вам указать ячейку для отображения результатов Yahoo News.
Таким образом, нам удалось использовать Yahoo Rest Webservice для получения данных в Excel без WINHTTP. Имейте в виду, что это простой пример. Чтобы изложить это, добавьте карту в книгу и используйте XMLMaps.import вместо примеров WINHTTP, которые я использовал.
Когда я сейчас буду использовать WINHTTP с веб-службами REST? Мое лучшее предположение на данный момент:
1. Когда требуется вход в систему для обслуживания. В этом случае мне нужно использовать SetCredentials
2. Когда я не хочу импортировать данные XML в карту XML, мне нужны необработанные данные. Например, я хочу манипулировать данными перед их записью в электронную таблицу или, возможно, перемещаться по XML и выбирать, какие данные отображать на основе пользовательских критериев.
Наконец, XMLMAPS.Import и WINHTTP работают для использования веб-служб REST, однако для последнего требуется еще несколько строк кода. Я буду спотыкаться о веб-службах, пока не выучу их (и, конечно же, пойму правильно). Интересно, есть ли у кого-нибудь еще примеры REST с использованием Excel?