IMusicPlayer网络音乐播放器_协议分析(一)

源码下载:http://download.csdn.net/detail/u011337769/9865014

开发步骤:

1.首先需要确定网络数据来源,这里可以是各种音乐平台

2.通过url访问web服务器,服务器将放回一个html的页面,通过右键检查选项可以跳转到对应的html标签处

IMusicPlayer网络音乐播放器_协议分析(一)

3.通过观察可以得出相关信息:一个列表项有,id属性:值为songs_BB8BF48B08C0AEC4F8058EB95C8285B9,和一个单击响应函数:playerModule.playSong(this);

IMusicPlayer网络音乐播放器_协议分析(一)

4.然后跳转到source选项,下断点:

IMusicPlayer网络音乐播放器_协议分析(一)

5.通过断点可以得到如下数据,该数据便是json数据,其中包括了hash值(用于判断)和歌曲资源链接url,再返回network中,可以看到由服务器返回的数据文件,该文件内容如上方框所示,

IMusicPlayer网络音乐播放器_协议分析(一)

             "time":1495795180,//时间戳可转换成格林尼治时间

             "req_hash":"BB8BF48B08C0AEC4F8058EB95C8285B9",

             "timeLength":190

IMusicPlayer网络音乐播放器_协议分析(一)

IMusicPlayer网络音乐播放器_协议分析(一)

7.访问该文件的的url为:

IMusicPlayer网络音乐播放器_协议分析(一)

然后通过解析得到的json数据就可以得到资源的url了,便可以访问了。

8.接下来就是编程验证,根据分析,确定开发步骤:

8.1.使用jsoup(使用参考Android基础练习)对数据进行获取,

8.2.然后通过选择器进行过滤,过滤出歌曲列表

8.3.提取其中的id值为songs_BB8BF48B08C0AEC4F8058EB95C8285B9,提取出其中的hash值

8.4.构造访问服务器的url ,采用GET方式发送

8.5.获取从服务端返回的json格式数据

8.6.够造歌曲信息java bean对象,解析json数据

8.7.通过返回的json数据获取其中的歌曲资源的url,访问资源,保存到本地文件中

到此前期准备完成,然后编写代码:

http://download.csdn.net/detail/u011337769/9865014

9.测试效果:

IMusicPlayer网络音乐播放器_协议分析(一)