欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

vbs的xmlHttp.responseText无效的调用过程

程序员文章站 2022-07-09 14:59:41
...
vbs真是门恶心人的语言,
set xmlhttp = CreateObject("MSXML2.XMLHTTP.3.0")
xmlhttp.open "GET",url, false
			xmlhttp.SetRequestHeader "Content-Type","text/xml;charset=utf-8"
			xmlhttp.setRequestHeader   "Cookie",HttpCookie
			log.log "http send "
			xmlhttp.send
			log.log "http.Status=" &xmlhttp.Status
			if xmlhttp.Status<>200 then
				log.log "获取数据失败。。。"
				exit sub
			end if
			log.log "http complete"
//log.log xmlhttp.ResponseText


这段代码有的时候成功,有的时候居然不成功。

800A0005无效的调用过程。
vbs的xmlHttp.responseText无效的调用过程
            
    
    博客分类: 项目管理  

但是注掉最后一行
log.log xmlhttp.ResponseText
就可以正常执行,
实际原因是由于编码错码导致,编码错误的提示,居然是错误的过程调用。。。
实在是误导开发者。

以下为编码转换代码:
dim bts
			bts = xmlhttp.ResponseBody
			xml = BytesToBstr(bts,"gbk")
			log.log bts


	'使用Adodb.Stream处理二进制数据
Function BytesToBstr(strBody,CodeBase)
        dim objStream
        set objStream = CreateObject("Adodb.Stream")
        objStream.Type = 1
        objStream.Mode =3
        objStream.Open
        objStream.Write strBody
        objStream.Position = 0
        objStream.Type = 2
        objStream.Charset = CodeBase
        BytesToBstr = objStream.ReadText 
        objStream.Close
        set objStream = nothing
End Function 


  • vbs的xmlHttp.responseText无效的调用过程
            
    
    博客分类: 项目管理  
  • 大小: 43.6 KB