龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > asp编程 >

使用MSXML2.ServerXMLHTTP发送数据,有超时功能

时间:2009-12-21 11:47来源:未知 作者:admin 点击:
分享到:
判断服务器MSXML2.ServerXMLHTTP Function getXMLHTTP() On Error Resume Next Dim Temp getXMLHTTP="MSXML2.ServerXMLHTTP" Err = 0 Dim TmpObj Set TmpObj = Server.CreateObject(getXMLHTTP) Temp = Err IF Temp = 1 or Temp = -2147221005 Then getX

' 判断服务器MSXML2.ServerXMLHTTP
Function getXMLHTTP()   
    On Error Resume Next  
    Dim Temp   
    getXMLHTTP="MSXML2.ServerXMLHTTP"  
    Err = 0   
    Dim TmpObj   
    Set TmpObj = Server.CreateObject(getXMLHTTP)   
    Temp = Err   
    IF Temp = 1 or Temp = -2147221005 Then  
        getXMLHTTP="Msxml2.ServerXMLHTTP.5.0"  
    End IF   
    Err.Clear   
    Set TmpObj = Nothing  
    Err = 0   
end function

Function smsSend(url)
 xmlobj=getXMLHTTP()
 set xmlHttp=server.createobject(xmlobj)
 xmlHttp.setTimeouts 10000,10000,10000,30000 '解释时间,连接时间,发送时间,接收时间。(单位毫秒)
 xmlHttp.open "POST",url,false 'POST 可改为get
 xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
 xmlHttp.send
 if xmlHttp.readystate=4 then
  if xmlHttp.status=200 then
     Result=xmlhttp.responsebody
  else
     Result=""
  end if
 end if
 set xmlHttp=Nothing
 smsSend=Result
End Function

 

调用方式:

如:

Call smsSend("网址/test.asp?smstxt="&server.URLEncode("测试3内容123"))

body=smsSend("网址/test.asp?smstxt="&server.URLEncode("测试3内容123"))

 

记住传数据时要使用server.URLEncode,要不然服务器接收参数的内容是乱码的。

Msxml2.XMLHTTP发送没有超时的,这样发送会把IIS搞死,改用MSXML2.ServerXMLHTTP加上超时的,就OK了。

 

Set objXml =Server.CreateObject("MSXML2.ServerXMLHTTP")
objXml.SetTimeOuts 10000, 10000, 15000, 15000

第一个数值:解析DNS名字的超时时间10秒
第二个数值:建立Winsock连接的超时时间10秒
第三个数值:发送数据的超时时间15秒
第四个数值:接收response的超时时间15秒

精彩图集

赞助商链接