在我的previous question中,我不小心发送了带有text/xml Content-Type的令牌/值对,导致未发送任何内容。蒂姆·C(Tim C)对这个问题的见解非常有帮助。再次感谢,蒂姆!

回顾原始的发送代码,我现在意识到将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


...在发送前不尝试设置Content-Type。

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

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

在此先感谢您的协助!和平,柯尔特·泰勒

最佳答案

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

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

09-27 13:23