日期:2014-05-17  浏览次数:20778 次

MSXML2.serverXMLHTTP send 超时问题
set XmlHttp=Server.createobject("MSXML2.serverXMLHTTP") 
XmlHttp.open "get",myUrl,false 
XmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
XmlHttp.send 

为什么在sp xp3的机子上运行,到send这步就会超时,提示0x80072EE2 错误,操作超时,但我用浏览器是
能直接打开上面的myUrl网址的,查了网上的方法,都是讲修改host的,有没有人
遇到这样的问题呀?快把人折磨死了

后来我发现用xmlhttp.responsetext就能返回值,但是一些不是用utf-8编码的就会产生乱码,而用xmlhttp.responsebody则就会出现超时的问题

------解决方案--------------------
请求时间设置长一点,设置编码跟你请求页面相同
VBScript code

Set HTTP = Server.CreateObject("MSXML2.ServerXMLHTTP")
    HTTP.setTimeouts 10000,10000,10000,30000 
    HTTP.Open "GET", nSrc, false, "", ""
    HTTP.Send
If HTTP.Readystate = 4 then
    If HTTP.Status = 200 Then
        Value = BytesToBSTR(HTTP.ResponseBody,nCharset)
    Else
        Value = ""
    End If
Else
    Value = ""
End If

Public Function BytesToBSTR(Body,nCharset)
    Dim ObjStream
    Set ObjStream = Server.CreateObject("Adodb.Stream")
    ObjStream.Type = 1
    ObjStream.Mode = 3
    ObjStream.Open
    ObjStream.Write body
    ObjStream.Position = 0
    ObjStream.Type = 2
    ObjStream.Charset = nCharset
    BytesToBSTR = ObjStream.ReadText 
    ObjStream.Close
    set ObjStream = Nothing
End Function

------解决方案--------------------
换个电脑试试,很可能本机问题。
------解决方案--------------------
应该是你一次性请求数太多,就好像采集一样,一次采集太多就会超时。