- 浏览: 9549 次
- 来自: 苏州
文章分类
最新评论
聚合数据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 |
不合法的座位类型 |
相关推荐
短信验证码的功能,在很多应用中都能用到,我写了一个例子,是接的聚合数据的短信验证码
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 ...
聚合官方sdk
使用fastjson和xUtils框架来获取聚合笑话数据,请自己申请聚合笑话key放入就可以运行 使用android studio工具开发
AppLovion MAX Unity
基于PHP的聚合数据天气预报api调用示例.pdf
关于聚合数据的sdk的下载,可以帮助你解决第三方slidingmenumanager管理的工具。
违章查询完整android studio工程。 使用mvp + retrofit + rxjava开发 使用聚合数据违章查询api,在ViolationKey类中填上你申请的key即可使用
基于android百度地图的聚合功能,并实现点击标注跳转!
Android 高德地图自定义点聚合marker图片及Overlay点击选中功能的代码实现及布局文件
Android手机号码归属地查询demo,基于Volley框架,使用get和post两种方式进行查询,适合入门者。
本文我将讲解一下我最近实现的高德地图Marker的聚合功能。在项目开发中需要使用到地图Marker的聚合功能,但是高德地图并没有实现对Marker的聚合功能,所以需要自己实现其聚合功能
本程序根据地图zoom大小来聚合标注物,clusterer标记聚合器用来解决加载大量点要素到地图上产生覆盖现象的问题,并提高性能,本代码为android版。
Android快速SDK(1)基础工具库QuickBase
万普聚合SDK
FindGasStation【Android项目】一款用于方便寻找附近最近的加油站的App,地图方面使用了百度地图的SDK,加油站和油价数据使用了聚合数据的SDK【注意】本项目的百度地图的app key和聚合数据的open id不提供,需要的...
聚合数据的API,基于网络的位置服务~获取到了经纬度,使用JSon解析
微信小程序学习demo:笑话大全;使用聚合数据API