- 浏览: 9943 次
- 来自: 苏州
文章分类
最新评论
聚合数据Android SDK 12306火车票查询订票演示示例
1.聚合SDK是聚合数据平台,为移动开发者提供的免费数据接口.使用前请先到聚合平台(http://www.juhe.cn/)注册,申请相关数据.
2.下载聚合数据SDK,将开发包里的juhe_sdk_v_1_1.jar拷贝到libs根目录下,将libJuheSDK_v_1_0.so拷贝到libs\armeabi目录下,如图:
3. 根据接口说明文档找到以下方法:
/** * 获取车次 * * @param name * 车次 * @param jsonCallBack */ public void getTrainNum(String name, JsonCallBack jsonCallBack) /** * 站到站查询 * * @param start * 出发站 * @param end * 终点站 * @param traintype * 列车类型 * @param jsonCallBack */ public void getS2S(String start, String end, String traintype, JsonCallBack jsonCallBack) /** * 12306实时余票查询 * * @param from * 出发站 * @param to * 到达站 * @param date * 出发日期 默认今天 * @param traintype * 车次类型 * @param jsonCallBack */ public void getTicketleft(String from, String to, String date, String traintype, JsonCallBack jsonCallBack) /** * 12306订票①:查询车次 * * @param from * 出发站 * @param to * 到达站 * @param date * 出发日期 * @param traintype * 车次类型 * @param jsonCallBack */ public void bookTrainNum(String from, String to, String date, String traintype, JsonCallBack jsonCallBack) /** * * @param name * 乘客姓名 * @param seat * 座位类型:商务座:9,一等座:M,二等座:O,特等座:P,高级软卧:6,软卧:4,硬卧:3,软座:2,硬座:1,无座:0 * @param mobile * 乘客手机号码 * @param idcard * 乘客身份证号码 * @param username * 12306官网账号 * @param password * 12306官网密码 * @param train_no * 步骤①对应车次返回值 * @param station_train_code * 步骤①对应车次返回值 * @param from_station_telecode * 步骤①对应车次返回值 * @param to_station_telecode * 步骤①对应车次返回值 * @param from_station_name * 步骤①对应车次返回值 * @param to_station_name * 步骤①对应车次返回值 * @param secretStr * 步骤①对应车次返回值 * @param jsonCallBack */ public void bookTicket(String name, String seat, String mobile, String idcard, String username, String password, String train_no, String station_train_code, String from_station_telecode, String to_station_telecode, String from_station_name, String to_station_name, String secretStr, JsonCallBack jsonCallBack)
首先,在AnroidManifest.xml中添加权限
<uses-permission android:name="android.permission.READ_PHONE_STATE" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.READ_CONTACTS" />
在application标签内部加入你申请的openid
<meta-data android:name="com.thinkland.juheapi.openid" android:value="申请的openid" />
在使用前需要调用一次初始化方法
CommonFun.initialize(getApplicationContext());
导入相关包
import com.thinkland.juheapi.common.CommonFun; import com.thinkland.juheapi.common.JsonCallBack; import com.thinkland.juheapi.data.train.TrainData;
调用方法
//站站查询 TrainData trainData = TrainData.getInstance(); trainData.getS2S("上海虹桥", "苏州园区", "G", new JsonCallBack() { @Override public void jsonLoaded(JSONObject arg0) { // TODO Auto-generated method stub try { int resultcode = arg0.getInt("resultcode"); if (resultcode == 200) { JSONArray resultJson = arg0.getJSONArray("result"); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } });
5.返回字段及相关错误码
public voidgetTrainNum(String name, JsonCallBack jsonCallBack)
返回字段:
名称 |
类型 |
说明 |
||
resultcode |
int |
返回码 |
||
reason |
string |
返回说明 |
||
result |
dictionary |
返回结果集 |
||
train_info |
dictionary |
返回结果集 |
||
name |
string |
列次名称 |
||
start |
string |
起点站 |
||
end |
string |
终点站 |
||
starttime |
string |
发车时间 |
||
endtime |
string |
到达时间 |
||
mileage |
string |
里程 |
||
station_list |
array |
站点列表 |
||
train_id |
int |
站点序号 |
||
station_name |
string |
站点名称 |
||
arrived_time |
string |
到达时间 |
||
leave_time |
string |
发车时间 |
||
stay |
string |
停留 |
||
mileage |
string |
里程 |
||
ssoftSeat |
string |
二等座 |
||
hardSead |
string |
一等座 |
||
softSeat |
string |
硬座 |
||
hardSleep |
string |
软座 |
||
softSleep |
string |
硬卧 |
||
error_code |
int |
错误码 |
public void getS2S(String start,String end, String traintype,JsonCallBack jsonCallBack)
返回字段:
名称 |
类型 |
说明 |
||
resultcode |
int |
返回码 |
||
reason |
string |
返回说明 |
||
result |
dictionary |
|||
data |
array |
返回结果集 |
||
trainOpp |
string |
列次名称 |
||
train_typename |
string |
列车类型 |
||
start_staion |
string |
出发站 |
||
end_station |
string |
终点站 |
||
leave_time |
string |
发车时间 |
||
arrived_time |
string |
到达时间 |
||
mileage |
string |
里程 |
||
totalcount |
int |
总条数 |
||
error_code |
int |
错误码 |
public void getTicketleft(String from, String to,String date, String traintype,JsonCallBack jsonCallBack)
返回字段:
名称 |
类型 |
说明 |
|
error_code |
int |
返回码 |
|
reason |
string |
返回说明 |
|
result |
array |
返回结果集 |
|
train_no |
string |
车次 |
|
start_station_name |
string |
车次始发站 |
|
end_station_name |
string |
车次终点站 |
|
from_station_name |
string |
出发站 |
|
to_station_name |
string |
到达站 |
|
start_time |
string |
出发时间 |
|
arrive_time |
string |
到达时间 |
|
train_class_name |
string |
车次类型 |
|
day_difference |
string |
历时天数 |
|
lishi |
string |
总历时时间 |
|
gr_num |
string |
高级软卧:-- 说明无该席位 |
|
qt_num |
string |
其他 |
|
rw_num |
string |
软卧 |
|
rz_num |
string |
软座 |
|
tz_num |
string |
特等座 |
|
wz_num |
string |
无座 |
|
yw_num |
string |
硬卧 |
|
yz_num |
string |
硬座 |
|
ze_num |
string |
二等座 |
|
zy_num |
string |
一等座 |
|
swz_num |
string |
商务座 |
publicvoid bookTrainNum(String from, String to,String date,String traintype, JsonCallBack jsonCallBack)
返回值:
名称 |
类型 |
说明 |
||
reason |
string |
返回说明 |
||
result |
array |
返回结果集 |
||
queryLeftNewDTO |
dictionary |
|||
train_no |
string |
车次 |
||
station_train_code |
||||
start_station_telecode |
||||
start_station_name |
string |
车次始发站 |
||
nd_station_telecode |
||||
end_station_name |
string |
车次终点站 |
||
from_station_telecode |
||||
from_station_name |
string |
出发站 |
||
to_station_telecode |
||||
to_station_name |
string |
到达站 |
||
start_time |
string |
出发时间 |
||
arrive_time |
string |
到达时间 |
||
day_difference |
历时天数 |
|||
train_class_name |
string |
车次类型 |
||
lishi |
string |
总历时时间 |
||
canWebBuy |
||||
lishiValue |
||||
yp_info |
||||
control_train_day |
||||
start_train_date |
||||
seat_feature |
||||
yp_ex |
||||
train_seat_feature |
||||
seat_types |
||||
location_code |
||||
from_station_no |
||||
to_station_no |
||||
control_day |
||||
sale_time |
||||
is_support_card |
||||
gr_num |
string |
高级软卧:-- 说明无该席位 |
||
qt_num |
string |
其他 |
||
rw_num |
string |
软卧 |
||
rz_num |
string |
软座 |
||
tz_num |
string |
特等座 |
||
wz_num |
string |
无座 |
||
yw_num |
string |
硬卧 |
||
yz_num |
string |
硬座 |
||
ze_num |
string |
二等座 |
||
zy_num |
string |
一等座 |
||
swz_num |
string |
商务座 |
||
secretStr |
||||
buttonTextInfo |
预订 |
|||
error_code |
int |
错误码 |
public voidbookTicket(String name, String seat, String mobile,
String idcard, String username, String password, String train_no,
String station_train_code, String from_station_telecode,
String to_station_telecode, String from_station_name,
Stringto_station_name, String secretStr, JsonCallBack jsonCallBack)
返回码:
名称 |
类型 |
说明 |
reason |
int |
返回说明 |
result |
dictionary |
返回结果 |
error_code |
int |
错误码 |
错误码 |
说明 |
202201 |
车次不能为空 |
202202 |
查询不到车次的相关信息 |
202203 |
出发站或终点站不能为空 |
202204 |
查询不到结果 |
202205 |
错误的出发站名称 |
202206 |
错误的到达站名称 |
202207 |
查询不到余票相关数据哦 |
202208 |
错误的请求,请确认传递的参数正确 |
202209 |
请求12306网络错误,请重试 |
202210 |
12306账号密码错误 |
202211 |
邮箱不存在 |
202212 |
查询出错 |
202213 |
提交订单超时,请重试 |
202214 |
出票失败 |
202215 |
排队失败 |
202216 |
该车次无法预定 |
202217 |
不合法的座位类型 |
相关推荐
2. **集成SDK**:聚合数据可能提供了Android SDK,便于开发者快速集成短信验证码功能。下载并导入SDK到你的Android项目中,按照官方文档进行配置。 3. **编写发送验证码的代码**:在用户输入手机号码后,通过调用...
Unity 广告SDK Max聚合广告SDK是专门为游戏开发者和应用开发者设计的一款强大的工具,它集成了AppLovin MAX的功能,让开发者能够在他们的Unity项目中轻松地实现广告的变现和优化。AppLovin MAX是一个领先的广告收益...
本项目"android获取聚合数据笑话"正是这样一个示例,它展示了如何利用Fastjson和XUtils这两个流行框架从聚合数据API中获取并解析笑话内容。下面我们将深入探讨这个项目涉及的关键知识点。 首先,聚合数据(JuHeData...
该示例项目是基于ADmobile-ADSuyi广告聚合平台的Android SDKDemo设计源码,包含169个文件,包括68个XML配置文件、63个Java源文件、17个PNG图片文件、9个Markdown文件、3个Gradle配置文件、2个Git忽略文件、2个属性...
聚合官方SDK,通常指的是一个集成了多种服务功能的软件开发工具包,旨在简化开发者的工作,让他们能够快速地在自己的应用程序中接入各种服务。这个SDK可能包括支付接口、登录认证、数据分析、推送通知等多种功能,...
android手游sdk聚合打包全套工具(windows平台) 解包:apktool d test.apk 重打包:apktool d test 签名:jarsigner -verbose -keystore test.jks -signedjar signtest.apk test.apk test 优化apk:zipalign -v 4 ...
android手游sdk聚合打包全套工具(linux平台) 解包:apktool d test.apk 重打包:apktool d test 签名:jarsigner -verbose -keystore test.jks -signedjar signtest.apk test.apk test 优化apk:zipalign -v 4 ...
这个特定的jar包,名为"JuheData_AndroidSDK_v2.0.0_All",很可能是由聚合数据(Juhe Data)公司提供的,它是一个专注于移动互联网数据服务的平台。 首先,我们要理解什么是SDK(Software Development Kit)。SDK是...
【标题】"违章查询完成工程---聚合数据"是一款基于Android Studio开发的移动应用程序,主要功能是为用户提供车辆违章信息查询服务。它采用先进的MVP(Model-View-Presenter)架构模式,结合Retrofit网络库和RxJava...
在Android开发中,集成地图服务是一项常见的需求,而高德地图作为国内领先的地图服务提供商,其SDK提供了丰富的功能,包括点聚合(Cluster)功能。点聚合功能主要用于在地图上显示大量定位点时,通过自动聚合近似...
1. **依赖引入**:首先,我们需要在项目的build.gradle文件中引入高德地图SDK以及用于聚合的第三方库,如`com.google.maps.android:android-maps-utils`。 2. **自定义ClusterManager**:高德地图虽然没有内置的...
在Android开发中,获取地理位置信息是一项常见的任务,而聚合数据(AggData)提供了一种通过网络获取位置服务的方式。本教程将详细讲解如何利用聚合数据的API来获取经纬度,并进行JSON解析处理。 首先,我们需要...
本项目就是一个基于Volley框架实现的Android手机号码归属地查询的示例(demo)。Volley是Google推出的一个网络请求库,以其高效、易用的特性深受开发者喜爱。下面我们将详细探讨这个项目中的关键知识点。 首先,...
IJPay聚合支付SDK v2.9.6是一个针对IT专业人士,特别是那些从事支付系统开发的开发者的重要工具。这个SDK提供了一种便捷的方式,使开发者能够快速集成多种支付渠道,如支付宝、微信支付、银联等,从而提升开发效率并...
本文档提供了基于PHP的聚合数据天气预报API调用示例,演示了如何使用PHP语言调用天气预报API,获取支持城市列表、根据城市获取天气预报、根据IP地址请求天气预报、根据GPS坐标请求天气、城市3小时天气预报等功能。...
在Android开发中,百度地图API是一个非常重要的工具,它提供了丰富的地图展示、定位、路径规划等功能,使得开发者能够轻松地将地图集成到自己的应用程序中。本篇主要探讨如何在Android应用中实现百度地图的标注及...
【万普聚合SDK】是一款专为Android应用开发者设计的软件开发工具包,它集成了多种功能,旨在简化移动应用的开发过程,提升用户体验,并帮助开发者实现商业化目标。万普聚合SDK通常包含广告展示、用户行为追踪、数据...
《深入解析BaiduLBS_AndroidSDK:基于AndEngine的地理定位与地图应用开发》 在移动应用开发领域,BaiduLBS(百度位置服务)为开发者提供了强大的地图、定位和路线规划等功能,极大地丰富了应用程序的用户体验。尤其...
在Android开发中,穿山甲(Pangle)广告SDK是一个重要的组件,用于集成各类广告形式,如开屏、激励视频、全屏、插屏、横幅(Banner)以及信息流广告。本文将详细讲解如何使用最新的V3.5.5.0版本的穿山甲SDK进行集成...
Android JuheApiSDK 是一个为 Android 应用程序提供的数据聚合SDK,旨在帮助开发者快速集成数据接口,提高应用程序的数据处理能力。下面是该SDK的使用说明文档概要: 版本说明 JuheApiSDK 的版本号为 V 2.6,发布...