Открытие или сохранение файла JSON через VBA WebBrowser - PullRequest
0 голосов
/ 15 октября 2019

Я пытаюсь решить проблему с получением файла JSON через элементы управления WebBrowser. В идеале я вообще не хотел использовать WebBrowsers и просто использовать HTTP-запрос. Однако пользователю необходимо войти в систему с помощью процесса единого входа, который после входа разрешит доступ к файлу JSON, который имеет код сеанса для пользователя в дальнейшем. Я не могу использовать HTTP-запрос, поскольку для его работы требуются файлы cookie заголовков HTTPS, поэтому я не могу получить их и передать их в запрос.

Теперь проблема в том, что я могу войти по URL-адресу, подождать, пока он завершит переход к URL-адресу с файлом JSON. Однако IE в Webbrower требует, чтобы вы сохранили файл. Который мне нужно автоматизировать или просто уметь читать файл JSON.

Эта электронная таблица и макрос должны распространяться среди множества пользователей. Поэтому мне нужно решение, которое не требует установки дополнительного программного обеспечения.

Есть идеи?

Я попробовал несколько основных сценариев и попытался передать различные заголовки, чтобы отобразить файл в виде простого текста. Это расстраивает, и я уверен, что мне не хватает чего-то простого.

headers = "Content-Type: text/plain"
frmSSOTest.WebBrowser1.Navigate2 myurl, "", Nothing, "", headers & vbCrLf

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

Я думаю, что часть UI Automation может работать, но кажется неуклюжей.

Мне кажется, что веб-браузер внутри формы выглядит чище, чем просто открывать сессию IE. Который имеет ту же проблему с подсказкой для сохранения файла

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...