Вопрос

Как бы мне создать HTTP-запрос с данными POST в классическом asp (не .net)?

Это было полезно?

Решение

Вы можете попробовать что-то вроде этого:

Set ServerXmlHttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
ServerXmlHttp.open "POST", "http://www.example.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
  • Способ:"ПОЛУЧИТЬ" или "ОПУБЛИКОВАТЬ"
  • URL - АДРЕС:URL-адрес, на который вы хотите опубликовать
  • Асинхронный:значение по умолчанию равно False (вызов возвращается не сразу) - для асинхронного вызова установлено значение True
  • Пользователь:имя пользователя, необходимое для аутентификации
  • Пароль:пароль, необходимый для аутентификации

Когда вызов возвращается, свойство status сохраняет HTTP-статус.Значение 200 означает "ОК", 404 означает "не найдено", 500 означает "ошибка сервера" и т.д.(См. http://en.wikipedia.org/wiki/List_of_HTTP_status_codes для других значений.)

Вы можете получить ответ в виде текста (свойство responseText), XML (свойство responseXML) или потока (свойство ResponseStream).

Другие советы

Вы должны использовать один из существующих объектов сервера xmlhttp напрямую или вы могли бы использовать библиотеку, которая немного упрощает жизнь, абстрагируясь от низкоуровневых материалов.

Проверить расширенная реализация о получении URL-адреса

Недостаток:Вам необходимо настроить библиотеку, чтобы заставить ее работать.Не уверен, необходимо ли это для вашего проекта.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top