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

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无效的调用过程。
[img]http://dl2.iteye.com/upload/attachment/0106/2076/b4f54131-2c1a-3867-8db3-a1d1605cb667.jpg[/img]

但是注掉最后一行
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值