当前位置: 代码迷 >> XML/SOAP >> MSXML2.XMLHTTP有关问题
  详细解决方案

MSXML2.XMLHTTP有关问题

热度:773   发布时间:2014-01-17 00:06:00.0
MSXML2.XMLHTTP问题
本人在本地xp professional系统中做了一个登录采集程序,可以顺利登录采集,但是放到windows server 2008 r2系统的服务器中却只能采集不用登录的,不能登录采集(每次自动跳转到登录页面),请问各位大侠是什么原因,是不是服务器需要什么设置?具体方法如下:
1、post登录方法
Function PostHttpPage(RefererUrl,PostUrl,PostData) 
     Dim xmlHttp 
     Dim RetStr      
     Set xmlHttp = CreateObject("Msxml2.XMLHTTP")  
     xmlHttp.Open "POST", PostUrl, False
     XmlHTTP.setRequestHeader "Content-Length",Len(PostData) 
     xmlHttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded"
     xmlHttp.setRequestHeader "Referer", RefererUrl
     xmlHttp.Send PostData 
     If Err.Number <> 0 Then 
         Set xmlHttp=Nothing
         PostHttpPage = "$False$"
         Exit Function
     End If
     PostHttpPage=bytesToBSTR(xmlHttp.responseBody,"GB2312")
     Set xmlHttp = nothing
 End Function 
 2、抓取信息方法
Function GetHttpPage(HttpUrl)
    If IsNull(HttpUrl)=True Or Len(HttpUrl)<18 Or HttpUrl="$False$" Then
       GetHttpPage="$False$"
       Exit Function
    End If
    Dim Http
    Set Http=server.createobject("MSXML2.XMLHTTP")
    Http.open "GET",HttpUrl,False
    Http.Send()
    If Http.Readystate<>4 then
       Set Http=Nothing 
       GetHttpPage="$False$"
       Exit function
    End if
    GetHTTPPage=bytesToBSTR(Http.responseBody,"GB2312")
    Set Http=Nothing
    If Err.number<>0 then
       Err.Clear
    End If
 End Function 
我怀疑是服务器设置问题或者msxml版本写法不同? 请各位大侠指点迷津。

------解决办法--------------------
改一下你的错误处理代码,看看错误代码是什么,错误描叙是什么
     If Err.Number <> 0 Then 
         Set xmlHttp=Nothing
         PostHttpPage = "$False$"
         Exit Function
     End If

------解决办法--------------------
显然是session失效,是否由于服务器上禁用了cookie呢。
朝这个方向找找原因吧。
------解决办法--------------------
MSXML2.XMLHTTP 是问题最多的一个版本
  相关解决方案