'********************************************** * ******************************
'Функция (публичная)
'Название: Функция удаленной выборки
'Функция: использовать XMLHTTP для удаленного сбора данных.
'Параметры: sMethod --- метод отправки
' sUrl ------ целевой адрес
' iMode ----- Возвращаемый тип содержимого: 0 — двоичный, 1 — текст, 2 — файл cookie, 3 — информация заголовка файла
' sBase ----- установка кодировки
'sReferer -- устанавливаем источник
' sCookie --- Установить cookie
'sLanguage - Установить язык
' sData ----- Установка параметров для отправки
' sContent -- Устанавливаем тип принимаемых данных
' sAgent ---- установка браузера
' sEncoding - Установить сжатие gzip.
' sAccept --- Установить тип документа
'********************************************** * ******************************
Открытая функция SenFe_StealData(sMethod, sUrl, iMode, sBase, sReferer, sCookie, sLanguage, sData, sContent, sAgent, sEncoding, sAccept)
Dim oXmlHttp: Set oXmlHttp = Server.CreateObject(Msxml2.ServerXMLHTTP)
С помощью oXmlHttp
Если sMethod= Тогда sMethod = GET
.Открыть метод, sUrl, False
'Установить источник страницы
Если sReferer<>Тогда
.SetRequestHeader Реферер, sReferer
Еще
.SetRequestHeader Referer, Split(sUrl, /)(2)
Конец, если
Если sCookie<> Тогда .SetRequestHeader Cookie, sCookie 'Установить файл cookie
If sLanguage<> then .SetRequestHeader Accept-Language, sLanguage 'Установить язык
If sData<> then .SetRequestHeader Content-Length, Len(sData) 'Установить длину данных
If sContent<> then .SetRequestHeader Content-Type, sContent 'Установить принятый тип данных
Если sAgent<> Тогда .SetRequestHeader User-Agent, sAgent 'Установить браузер
Если sEncoding<> Тогда .SetRequestHeader Accept-Encoding, sEncoding 'Установить сжатие gzip
Если sAccept<> Тогда .SetRequestHeader Accept, sAccept 'Тип документа
.Отправить данные
'Пока .ReadyState <> 4
'.WaitForResponse 1000
'Венд
Если .ReadyState<>4 Или .Status<>200 Тогда
SenFe_StealData = Невозможно получить данные!
Выход из функции
Конец, если
Выберите случай iMode
Случай 0 SenFe_StealData = .ResponseBody
Случай 1
Если sBase<>Тогда
SenFe_StealData = BytesToBstr(.ResponseBody, sBase)
Еще
SenFe_StealData = .ResponseText
Конец, если
Случай 2 SenFe_StealData = .getResponseHeader(Set-Cookie)
В противном случае SenFe_StealData = .getAllResponseHeaders()
Конец выбора
Конец с
Конечная функция
'********************************************** * ******************************
'Функция: преобразование кодировки
'Параметры: sBody - содержимое, которое нужно преобразовать
'sCset - кодировка
'********************************************** * ******************************
Функция BytesToBstr(sBody, sCset)
С oAdos
.Тип = 1
.Режим = 3
.Открыть
.Напишите sBody
.Позиция = 0
.Тип = 2
.Charset = набор символов
BytesToBstr = .ReadText
.Закрывать
Конец с
Конечная функция