函数中的QueryURl,QueryStr分别代表获取远程文件的网页地址及相应的参数,参数的设置方法与querystring的设置方法一样。
<%
function PostHttpData(QueryURl,QueryStr)
on error resume next
dim EnQueryStr,XMLHttp
EnQueryStr = URLEncoding(QueryStr)
set XMLHttp = Server.CreateObject("MSXML2.serverXMLHTTP")
XMLHttp.open "POST", QueryURl, false
XMLHttp.setRequestHeader "Content-Length", Len(EnQueryStr)
XMLHttp.setRequestHeader "CONTENT-TYPE", "application/x-www-form-urlencoded"
XMLHttp.setRequestHeader "Referer", QueryURl
XMLHttp.send EnQueryStr
dim HttpStr
if err.number = 0 then
if XMLHttp.status = 200 then
HttpStr = bytes2BSTR(XMLHttp.ResponseBody)
else
HttpStr = "-1"
end if
else
err.clear
HttpStr = "-1"
end if
set XMLHttp = nothing
PostHttpData = HttpStr
end function
Function URLEncoding(vstrIn)
dim strReturn,i
strReturn = ""
For i = 1 To Len(vstrIn)
dim ThisChr,innerCode
ThisChr = Mid(vStrIn,i,1)
If Abs(Asc(ThisChr)) < &HFF Then
strReturn = strReturn & ThisChr
Else
innerCode = Asc(ThisChr)
If innerCode < 0 Then
innerCode = innerCode + &H10000
End If
dim Hight8,Low8
Hight8 = (innerCode And &HFF00)\ &HFF
Low8 = innerCode And &HFF
strReturn = strReturn & "%" & Hex(Hight8) & "%" & Hex(Low8)
End If
Next
URLEncoding = strReturn
End Function
Function bytes2BSTR(vIn)
dim strReturn,i
strReturn = ""
For i = 1 To LenB(vIn)
dim ThisCharCode,NextCharCode
ThisCharCode = AscB(MidB(vIn,i,1))
If ThisCharCode < &H80 Then
strReturn = strReturn & Chr(ThisCharCode)
Else
NextCharCode = AscB(MidB(vIn,i+1,1))
strReturn = strReturn & Chr(CLng(ThisCharCode) * &H100 + CInt(NextCharCode))
i = i + 1
End If
Next
bytes2BSTR = strReturn
End Function
%>