Как улучшить метод VBA? - PullRequest
       5

Как улучшить метод VBA?

2 голосов
/ 08 марта 2011

Я пытаюсь открыть документ Word через HTTP с удаленного сервера. Метод Documents.Open прекрасно это поддерживает, так как я могу передать ему URL-адрес в качестве имени файла и загрузить его с удаленного сервера.

Однако, чтобы получить файл, мне нужно отправить POST учетные данные по URL-адресу, а затем следовать полю местоположения в ответе, чтобы получить файл. Как мне создать подкласс или перегрузить объект Documents, чтобы выполнить этот шаг, прежде чем передать содержимое в Word для открытия?

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

Правка № 2: поочередно

Если бы я получил полную подпрограмму на основе MSXML2.XMLHTTP, которая бы выполняла POST-аутентификацию, анализировала заголовки set-cookie и location из ответа и использовала их для получения содержимого документа с сервера, есть ли какой-нибудь способ? Я могу открыть документ в памяти в виде файла, вместо того, чтобы выгружать временные файлы в файловую систему, волей-неволей? Из чтения документов Open () просто поддерживает имя файла (или путь).

Я верю, что есть .NET способ сделать это с помощью IO.System.MemoryMappedFile, но есть ли какой-нибудь способ, которым это может быть открыто для COM, так что я могу просто вывести поток данных в функцию, получить дескриптор файла и передать to .Open () для обработки?

1 Ответ

0 голосов
/ 08 марта 2011

Вы можете использовать XMLHTTP, чтобы выполнить сообщение, а затем проанализировать ответ для пути. Насколько я знаю, вы не можете переопределить встроенные методы, такие как .Open ()

http://www.15seconds.com/issue/991125.htm

На полпути вниз по странице есть пример POST в VBA

Тим

...