本人在本地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 是问题最多的一个版本