Что такое тип содержимого по умолчанию для MSXML2.ServerXMLHTTP? - PullRequest
3 голосов
/ 16 декабря 2008

В моем предыдущем вопросе я случайно отправлял пары токен / значение с text/xml Content-Type, в результате чего ничего не отправлялось. Понимание Тима Си этой проблемы было чрезвычайно полезным. Еще раз спасибо, Тим!

Оглядываясь назад на исходный код отправки, я теперь понимаю, что установка ServerXMLHTTP Content-Type на text/xml была недавним и ошибочным дополнением. Код отправки, который я разместил в своем вопросе, выглядел так:

url = "www.receivingwebsite.com\asp\receivingwebpage.asp"
information = "UserName=Colt&PassWord=Taylor&Data=100"
Set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", url, false
xmlhttp.setRequestHeader "Content-Type", "text/xml"
xmlhttp.send information

Фактический код отправки действительно:

url = "www.receivingwebsite.com\asp\receivingwebpage.asp"
information = "UserName=Colt&PassWord=Taylor&Data=100"
Set xmlhttp = server.Createobject("MSXML2.ServerXMLHTTP")
xmlhttp.Open "POST", url, false
xmlhttp.send information

... без попытки установить тип содержимого перед отправкой.

К сожалению, проблема, которая изначально побудила меня обратиться за помощью, все еще существует. Моя получающая классическая страница asp не может видеть информацию, которая публикуется объектом ServerXMLHTTP. Информация отсутствует в объекте запроса querystring или массиве form. Независимо от того, что я делаю, я не могу найти информацию, но я знаю, что она отправляется, потому что когда я изменяю тип контента на application/x-www-form-urlencoded, я могу видеть его в массиве request.form.

Так какой тип содержимого по умолчанию для класса MSXML2.ServerXMLHTTP? И где моя информация, когда отправляющий класс использует этот тип контента по умолчанию?

Заранее спасибо за любую помощь! Мир, Кольт Тейлор

1 Ответ

3 голосов
/ 18 декабря 2008

ASP заполнит массив формы только в том случае, если тип содержимого POST - «application / x-www-form-urlencoded». Обычно ServerXMLHTTP не устанавливает заголовок типа контента, поэтому, если вы не сделаете это вручную, заголовок типа контента не отправляется.

Исключением является случай, когда вы передаете XML-документ в качестве параметра для отправки, в этом случае ServerXMLHTTP установит тип содержимого "text / xml; charset = UTF-8".

...