Во-первых, надо послать кусок данных на интернет-страничку методом POST. Раньше пытался делать это через ActiveWorkbook.FollowHyperlink. И столкнулся с тем, что при попытке передать кусок больше приблизительно килобайта - вылезает "Out of memory"! В моём примере это выглядит так:
- Код: Выделить всё
MyPostData = String(979, " ")
ActiveWorkbook.FollowHyperlink "http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?SUBMIT=y", NewWindow:=True, ExtraInfo:=MyPostData, Method:=msoMethodPost
То есть, в реальности у меня, конечно, в MyPostData не куча пробелов, а какая-то осмысленная информация, но дело не в этом - при длине строки больше 978 байт получаю "Run-time error '7': Out of memory". (на самом деле когда как - иногда этот порог не 978, а больше либо меньше) Чего с этим сделать - не представляю.
Потом решил отказаться от .FollowHyperlink, стал использовать объект WebBrowser.
Делаю так:
- Код: Выделить всё
Dim wb As WebBrowser
Set wb = CreateObject("InternetExplorer.Application")
MyURL = "http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?SUBMIT=y"
MyPostData = "orig_db=pubmed&cmd=Search&term=10684922"
wb.navigate MyURL, , , MyPostData
wb.Visible = True
В результате страничка открывается, но данные мои туда не передаются!!! Причём, если в последнем примере вызвать ActiveWorkbook.FollowHyperlink MyURL, NewWindow:=True, ExtraInfo:=MyPostData, method:=msoMethodPost, то это как раз сработает как надо...
ПОМОГИТЕ!!!
И второй вопрос - как программно сохранить выдаваемый файл. Т.е., в результате запроса сервер выдаёт не страничку для просмотра, а файл - и надо получить его содержимое (и желательно, чтобы пользователю не пришлось самому выбирать в диалоге "Открыть/Сохранить?").
Заранее спасибо!