В этой статье в основном описывается метод ASP, имитирующий запрос POST для асинхронной отправки данных. В этой статье используется MSXML2.SERVERXMLHTTP.3.0 для реализации запроса POST. Друзья, нуждающиеся в помощи, могут обратиться к следующему.
Иногда необходимо получить определенную информацию с удаленного веб-сайта, а сервер ограничивает метод GET и может отправлять ее только через данные POST. В настоящее время мы можем имитировать отправку почтовых данных через asp. В Интернете есть много таких примеров. . Ниже приведена относительно краткая и простая для понимания функция, которую я написал сам.
Прежде всего, необходима функция настройки кодировки, поскольку asp обычно представляет собой gbk, а большинство стандартных веб-сайтов сейчас используют utf-8. Поэтому необходима конверсия.
Скопируйте код кода следующим образом:
функция BytesToBstr(тело,Cset)
тусклый объектный поток
set objstream = Server.CreateObject("adodb.stream")
objstream.Type = 1
objstream.Mode =3
objstream.Открыть
objstream.Напишите тело
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
установить objstream = ничего
Конечная функция
Второй шаг — использовать компоненты для отправки данных публикации. Здесь я использовал MSXML2.SERVERXMLHTTP.3.0. Конечно, можно использовать и другие.
Скопируйте код кода следующим образом:
функция PostHTTPPage (url, данные)
dimHttp
set Http=server.createobject("MSXML2.SERVERXMLHTTP.3.0")
Http.open "POST", URL, false
Http.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
Http.send(данные)
если Http.readystate<>4, то
функция выхода
Конец, если
PostHTTPPage=bytesToBSTR(Http.responseBody,"utf-8")
установить http=ничего
если err.number<>0, то err.Clear
Конечная функция
Вот как это работает:
Скопируйте код кода следующим образом:
PostHTTPPage("www.vevb.com","str1=a&str2=b&str3=c")