如何访问客户端发布到经典ASP服务器的内容?我知道有Request.Forms变量,但是客户端的请求不是使用Form发出的。客户端请求的主体只是使用标准POST语句生成的字符串。谢谢
如果客户端发送的请求的内容类型不是表单数据,则需要读取请求字节。在这种情况下,请求不是可通过名称- 值对访问的表单数据,因此您不能使用Request.Form集合。我建议研究BinaryRead方法。
读取发布的数据并转换为字符串:
If Request.TotalBytes > 0 Then Dim lngBytesCount lngBytesCount = Request.TotalBytes Response.Write BytesToStr(Request.BinaryRead(lngBytesCount)) End If Function BytesToStr(bytes) Dim Stream Set Stream = Server.CreateObject("Adodb.Stream") Stream.Type = 1 'adTypeBinary Stream.Open Stream.Write bytes Stream.Position = 0 Stream.Type = 2 'adTypeText Stream.Charset = "iso-8859-1" BytesToStr = Stream.ReadText Stream.Close Set Stream = Nothing End Function
希望能帮助到你。
更新#1:
使用JScript
if(Request.TotalBytes > 0){ var lngBytesCount = Request.TotalBytes Response.Write(BytesToStr(Request.BinaryRead(lngBytesCount))) } function BytesToStr(bytes){ var stream = Server.CreateObject("Adodb.Stream") stream.type = 1 stream.open stream.write(bytes) stream.position = 0 stream.type = 2 stream.charset = "iso-8859-1" var sOut = stream.readtext() stream.close return sOut }