xowen 发表于 2013-8-29 21:10:08

【高手何在?】如何通过winhttprequest获取200 OK中的Data数据?

本帖最后由 xowen 于 2013-9-9 19:37 编辑

使用$xmlhttp.responsetxt获取不到数据,请大虾帮忙,怎么才能获取到200 OK中携带的数据?(如下图红色方框标记处)
local $IP='192.168.1.12'
                $oMyError = ObjEvent("AutoIt.Error", "MyErrFunc")
                $xmlhttp = ObjCreate("winhttp.winhttprequest.5.1")
                        $xmlhttp.setTimeouts(3000, 3000, 5000, 5000)
                        $xmlhttp.open("POST", 'http://'&$IP&'/login/status', False)
                        $xmlhttp.setRequestHeader("Accept-Language", "zh-cn")
                        $xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
                        $xmlhttp.setRequestHeader("Host", $IP)
                        $xmlhttp.setRequestHeader("Connection", 'Keep-Alive')
                        $xmlhttp.setRequestHeader("Referer", 'http://'&$IP)
                        $xmlhttp.send('username=admin&password=123')
                        $Return_Msg=$xmlhttp.ResponseText   ;==>这步获取不到服务端返回的200 OK中的Data数据,返回为空。那么怎么获取到获取返回的Data?参考数据包截图

尝试了以下方法都不行,获取的数据都是空的:
1、$xmlhttp.getResponseHeader('Data')
2、$xmlhttp.ResponseBody

tutou9997 发表于 2013-8-29 22:04:05

兄台...这个没太明白你说的意思啊

xowen 发表于 2013-8-29 22:37:57

回复 2# tutou9997
重新编辑了一下帖子,请帮忙看看,谢谢1

komaau3 发表于 2013-8-30 05:35:39

BinaryToString($oHTTP.ResponseBody, 1)
乱码的话就
BinaryToString($oHTTP.ResponseBody, 4)

xowen 发表于 2013-8-30 11:00:12

回复 4# komaau3
$oHTTP.ResponseBody获取到的值为空哎!貌似这个方法不行额!

komaau3 发表于 2013-8-30 14:55:42

回复 5# xowen


    你登的是路由?

xowen 发表于 2013-8-30 17:57:22

回复 6# komaau3
是一个话机,针对不同HTTP请求,返回的200 OK有两种格式:
1、200 OK数据包中指定了类型为application/json,这种返回的数据是txt格式的,可以直接使用ResponseTXT获取。
2、另一种没有指定类型(如问题中的截图),数据保存在Data中,以16进制形式存在,通过我说的方法都获取不到Data中包含的值。

xowen 发表于 2013-9-4 00:22:00

高手大虾出来吧!

xowen 发表于 2013-9-9 19:38:03

高手何在.....?
页: [1]
查看完整版本: 【高手何在?】如何通过winhttprequest获取200 OK中的Data数据?