什么是MSXML2.ServerXMLHTTP的默认内容类型?

时间:2008-12-16 17:28:29

标签: asp-classic content-type serverxmlhttp

在我的previous question中,我不小心发送了带有text/xml内容类型的令牌/值对,导致没有发送任何内容。蒂姆C对这个问题的洞察力非常有帮助。再次感谢,蒂姆!

回顾原始发送代码,我现在意识到将ServerXMLHTTP的内容类型设置为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

...在发送之前没有尝试设置Content-Type。

不幸的是,最初导致我寻求帮助的问题仍然存在。我收到的经典asp页面无法看到ServerXMLHTTP对象发布的信息。该信息不在请求对象的querystringform数组中。无论我做什么,我都找不到信息,但我知道它正在发送,因为当我将内容类型更改为application/x-www-form-urlencoded时,我可以在request.form数组中看到它。

那么MSXML2.ServerXMLHTTP类的默认内容类型是什么? 当发送类使用默认内容类型时,我的信息在哪里?

提前感谢您的任何帮助!和平,柯尔特泰勒

1 个答案:

答案 0 :(得分:3)

如果POST的内容类型为“application / x-www-form-urlencoded”,ASP将仅填充表单数组。通常,ServerXMLHTTP不会设置内容类型标头,因此如果您不手动执行,则不会发送内容类型标头。

例外情况是您将XML Document作为要发送的参数传递,在这种情况下,ServerXMLHTTP会将内容类型设置为“text / xml; charset = UTF-8”。