|
本帖最后由 zye7504 于 2019-4-18 14:33 编辑
刚开始本来是想做个列车时刻cha询,经过分析,列车时刻cha询数据太多,而在该页面又同时查出一个特价机票信息,机票信息相对较少,所以就改成特价机票cha询,反正方法是一样的,原理是一样的,废话少说,上图: 第一步:在谷歌浏览器中找到url地址和post数据的格式,然后定义机票查询类,将url和post定义成常量
查询地址: https://trains.ctrip.com/TrainBooking/Search.aspx?from=hengyang&to=beijing&day=2019-04-19&number=&fromCn=%25E8%25A1%25A1%25E9%2598%25B3&toCn=%25E5%258C%2597%25E4%25BA%25AC&mkt_header=bdkx
post数据格式:value:
{"IsBus":false,"Filter":"0","Catalog":"","IsGaoTie":false,"IsDongChe":false,"CatalogName":"","DepartureCity":"hengyang","ArrivalCity":"beijing","HubCity":"","DepartureCityName":"衡阳","ArrivalCityName":"北京","DepartureDate":"2019-04-19","DepartureDateReturn":"2019-04-21","ArrivalDate":"","TrainNumber":""}
第二步:定义一个查询结果类。为什么定义成一个类?体现面向对象的思想嘛
第三步:编写查询方法。因为post数据的格式为:value={json对象},所以这里面主要用到“安卓网络操作类”和json相关操作类。查询时间我写死在json当中了,懒得写代码,要用的话自己改一下即可。
第四步:经测试发现,网站查询时主要是根据起始站和终点站名称的拼音进行查询,而火山中没有将汉字转换成拼音的相关类,也可能是我没有找到。所以百度找到一个汉字转拼音的jar包,然后测试并封装到火山中。jar名称为:pinyin4j-2.5.0.jar
pinyin4j-2.5.0.jar
(184.49 KB, 下载次数: 4)
用下面的方式也可以,二选一,反正是学习,所以两种方法我都测试了一下,都是ok的
第五步:可以测试了,哈哈
是不是很简单,当然,我写出来只用了不到十分钟,但研究出来我花了半个上午,毕竟火山我也不熟,好在有企鹅这些好老师们。
|
|