Java模拟flex发送订阅请求,java抓取基于flex技术网站的数据

Adobe Flex是基于Flash平台,涵盖了支持RIA(Rich Internet Applications)的开发和部署的一系列技术组合。有很多基于Web的网络游戏都是采用Flex技术开发的,java。

Flash(客户端)与服务器之间通信既支持HTTP协议(具体的正文消息格式可以是text、XML、JSON、AMF等)也支持原始的Sockets,以HTTP协议较为常见。

对于使用text,XML或JSON形式消息格式的Flex应用来说,对其的分析和抓取方法与基于Ajax的网站一样:

通过HTTP协议抓包工具(例如,Fiddler,Firebug)分析请求的结构(请求方法、URL、相关参数)和步骤,然后用程序模拟发出同样格式的请求,再对返回的数据进行解析和提取。

抓取flex技术网站的数据需要依赖第三方工具charles,charles可辅助分析请求,百度自行下载。java抓取还需要下载Adobe 提供的blazeds-core-3.2.0.3978.jar,jar包提供了AMFConnection类,该类提供了connect(String url),call(String command,Object... args)模拟发送请求和远程调用函数的方法,connect不做解释,主要解释一下call方法,command指模拟请求时远程调用的方法,根据对charles的分析,command="destination.operation",两者结合使用。args指operation方法的参数,这我们怎么知道呢,个人总结指发送请求时body里面的参数,可自行测试,如若不对,请指正。

打开charles,在浏览器中访问目标网址,分析数据包,如图

6549a9381b9be70b6e00fcd951a38d8f.png

截图左侧为charles捕获到的请求网址,右侧上半部分是发送请求时的参数,下半部分是捕获到的返回数据,代码如下:

f6a812707aedc5c36b29cec8b3acc926.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值