Как я могу создать HTTP-запрос с данными POST в классическом asp (not .net)?Как выполнить HTTP-запрос POST в ASP?
ответ
Вы можете попробовать что-то вроде этого:
Set ServerXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
ServerXmlHttp.open "POST", "http://www.domain.com/page.asp"
ServerXmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
ServerXmlHttp.setRequestHeader "Content-Length", Len(PostData)
ServerXmlHttp.send PostData
If ServerXmlHttp.status = 200 Then
TextResponse = ServerXmlHttp.responseText
XMLResponse = ServerXmlHttp.responseXML
StreamResponse = ServerXmlHttp.responseStream
Else
' Handle missing response or other errors here
End If
Set ServerXmlHttp = Nothing
где PostData это данные, которые вы хотите отправить (например, пары имя-значение, XML документ или любой другой).
Вам необходимо установить правильную версию MSXML2.ServerXMLHTTP в соответствии с тем, что вы установили.
Открытый метод принимает пять аргументов, из которых только первые два необходимы:
ServerXmlHttp.open Method, URL, Async, User, Password
- Метод: "GET" или "POST"
- URL: URL вы хотите разместить сообщение
- асинхронный: по умолчанию значение False (вызов не возвращается сразу) - значение ИСТИНА для асинхронного вызова
- пользователя: имя пользователя требуется для аутентификации
- Пароль: пароль, необходимый для аутентификации
Когда вызов возвращается, свойство status содержит статус HTTP. Значение 200 означает, что OK - 404 означает, что не найдено, 500 означает ошибку сервера и т. Д. (См. http://en.wikipedia.org/wiki/List_of_HTTP_status_codes для других значений.)
Вы можете получить ответ как текст (свойство responseText), XML (свойство responseXML) или поток (свойство responseStream).
Вы должны использовать один из существующих объектов xmlhttp-сервера напрямую, или вы можете использовать библиотеку, которая облегчает жизнь, абстрагируя материал низкого уровня.
Проверка ajaxed implementation из Выборка URL-адрес
Недостаток: Вам нужно настроить библиотеку для того, чтобы заставить его работать. Не уверен, что это необходимо для вашего проекта.
«Вам нужно будет установить правильную версию MSXML2.ServerXMLHTTP в соответствии с тем, что вы установили». или просто используйте MSXML2.ServerXMLHTTP.3.0, который всегда присутствует на всех поддерживаемых в настоящее время платформах. – AnthonyWJones