Есть некоторые синтаксические ошибки.
- Оператор модуля не является частью VBScript .
- Подчеркивание может привести к неожиданным результатам.См. http://technet.microsoft.com/en-us/library/ee198844.aspx (поиск слова
underscore
на странице) - Вы не можете использовать круглые скобки при вызове Sub (например,
xmlhttp.open
является подпрограммой, ничего не возвращает) .У вас есть две основные альтернативы вызову подпрограммы.sub_proc param1, param2
или Call sub_proc(param1, param2)
- Оператора присваивания '
=
' недостаточно для объектов.Вы должны использовать оператор Set .Он назначает объектные ссылки на переменные.
Ответ может возвращаться в кодировке utf-8.Но ФСО не в мире с UTF-8.Другой вариант - записать ответ как Unicode (передавая True
в качестве третьего параметра CreateTextFile ), но размер вывода будет больше, чем должен быть.Поэтому я бы предпочел использовать Stream объект.Я пересмотрел ваш кодПожалуйста примите к сведению.
'Requeired Constants
Const adSaveCreateNotExist = 1 'only creates if not exists
Const adSaveCreateOverWrite = 2 'overwrites or creates if not exists
Const adTypeBinary = 1
Sub get_html(ByVal up_http, ByVal down_http)
Dim xmlhttp, varBody
Set xmlhttp = CreateObject("msxml2.xmlhttp.3.0")
xmlhttp.open "GET", up_http, False
xmlhttp.send
varBody = xmlhttp.responseBody
Set xmlhttp = Nothing
Dim str
Set str = CreateObject("Adodb.Stream")
str.Type = adTypeBinary
str.Open
str.Write varBody
str.SaveToFile down_http, adSaveCreateOverWrite
str.Close
Set str = Nothing
End Sub
get_html "http://stackoverflow.com", "c:\downloads\website.html"