【高手何在?】如何通过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 兄台...这个没太明白你说的意思啊 回复 2# tutou9997
重新编辑了一下帖子,请帮忙看看,谢谢1 BinaryToString($oHTTP.ResponseBody, 1)
乱码的话就
BinaryToString($oHTTP.ResponseBody, 4) 回复 4# komaau3
$oHTTP.ResponseBody获取到的值为空哎!貌似这个方法不行额! 回复 5# xowen
你登的是路由? 回复 6# komaau3
是一个话机,针对不同HTTP请求,返回的200 OK有两种格式:
1、200 OK数据包中指定了类型为application/json,这种返回的数据是txt格式的,可以直接使用ResponseTXT获取。
2、另一种没有指定类型(如问题中的截图),数据保存在Data中,以16进制形式存在,通过我说的方法都获取不到Data中包含的值。 高手大虾出来吧! 高手何在.....?
页:
[1]