转载请注明出处:http://lucien-zzy.iteye.com/admin/blogs/2007894
包含三个类一个配置文件:
1.静态时间格式类
2.接口测试类
3.配置文件加载类
4.配置文件
5.所需jar包
1.静态时间格式类
public class RequestStatic implements java.io.Serializable {
private static final long serialVersionUID = 5454155825314635342L;
public static final String DATE_FORMAT = "yyyy-MM-dd";
public static final String TIME_FORMAT = "HH:mm:ss";
public static final String DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
public static final String TIMESTAMP_FORMAT = "yyyy-MM-dd HH:mm:ss.S";
public static final String TIME_FORMAT_HM = "HH:mm";
public static final String DATETIMEFORMAT = "yyyyMMdd HH:mm:ss";
public static final String DATEFORMAT = "yyyyMMdd";
}
2.接口测试类
/**
* IBE接口测试
* @author ziyuzhang
*
*/
public class ConnectTest {
public static void connectHost(IBEClient ibe){
String office = IBEConfigUtil.getStringValue("ibe.client.office");
String customno = IBEConfigUtil.getStringValue("ibe.client.customno");
String validationno = IBEConfigUtil.getStringValue("ibe.client.validationno");
String appname = IBEConfigUtil.getStringValue("ibe.client.app");
int port = IBEConfigUtil.getIntValue("ibe.server.port");
String ip = IBEConfigUtil.getStringValue("ibe.server.ip");
ibe.setConnectionInfo(ip, port);
ibe.setAgentInfo(office, customno, validationno);
ibe.setAppName(appname);
ibe.setSoTimeOut(10000);
System.out.println(ibe.testConnect());
}
/**
* 航班信息查询-航班信息查询-航班信息查询-航班信息查询-航班信息查询-航班信息查询-航班信息查询-航班信息查询-航班信息查询-航班信息查询
*/
/**
* AV(实现舱位可利用情况查询)
* @return
* @throws ParseException
*/
public static AvResult av(){// 查询航班
//生成舱位查询对象
AV avExample = new AV();// AV指令接口
//连接主机,AV实现了IBEClient接口,所以可以使用写的静态方法完成主机配置
connectHost(avExample);
//处理查询指令参数,需注意多数方法要求的时间参数格式不同
Date date=null;
try {
date = new SimpleDateFormat(RequestStatic.DATETIMEFORMAT).parse("20140121 00:00:00"); //查询AV日期格式(yyyyMMdd HH:mm:ss)
} catch (java.text.ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//查询航班
AvResult ar = null;
try {
//查询北京到上海国航航班舱位可利用情况
ar = avExample.getAvailability("PEK", "SHA", date, "CA",true,true);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(ar);
//返回查询结果
return ar;
}
/**
* SK航班时刻显示查询
* @return
* @throws ParseException
*/
public static SkResult sk(){
//生成航班时刻查询对象
SK skExample = new SK();// AV指令接口
//连接主机,AV实现了IBEClient接口,所以可以使用写的静态方法完成主机配置
connectHost(skExample);
//处理查询指令参数,需注意多数方法要求的时间参数格式不同
Date date=null;
try {
date = new SimpleDateFormat(RequestStatic.DATETIMEFORMAT).parse("20090820 00:00:00"); //查询AV日期格式(yyyyMMdd HH:mm:ss)
} catch (java.text.ParseException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
//查询时刻
SkResult sr = null;
try {
sr = skExample.getSchedule("PEK","SHA","20140121 00:00:00","JD",false,false);
} catch (Exception e) {
e.printStackTrace();
}
System.out.println(sr);
//返回查询结果
return sr;
}
/**
* 实现显示航班经停点及起降时间的查询
* @return
*/
public static FFResult ff(){
//生成查询对象
FF ffExample = new FF();
connectHost(ffExample);
FFResult ffres=null;
try {
ffres = ffExample.flightTime("CA929", "21JAN14");//参数航班号,起飞日期(DDMONYY或DDMON)
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(ffres);
return ffres;
}
/**
* 实现显示航班飞行时间餐食等信息
* @return
*/
public static DsgResult dsg(){
DSG dsgExample = new DSG();
connectHost(dsgExample);
DsgResult dsgres = null;
try {
//参数(航班号、舱位、日期,可以接受的格式为"DDMMM","DDMMMYY",或者"+"/"-"/"."分别代表明天/昨天/今天,或者为空(null)、航段城市对 可以为null)
dsgres = dsgExample.displaySegment("CA929",'y',"21JAN14",null);
} catch (IBEException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(dsgres);
return dsgres;
}
/**
* 实现航班运价查询
* @return
*/
public static FDResult fd(){
FD fdExample = new FD();
connectHost(fdExample);
// findPrice参数
// 1.org - java.lang.String 始发地三字代码 [EN] Departure CityCode,A three-character code representing a departure city, e.g., PEK
// 2.dst - java.lang.String 到达地三字代码 [EN] Arrival CityCode,A three-character code representing an arrival city, e.g., SHA
// 3.date - java.lang.String 查询日期,格式为"DDMMMYY",如"20NOV02", [EN] Specifies date,format:"DDDMMYY", e.g., 20NOV02.
// 4.airline - java.lang.String 航空公司两字代码 可以设置为"all"表示为查询所有国内航空公司在此航线上的公布运价。 [EN] Airline Designator Code,A two-character code representing an Airline,e.g., CA "ALL" String indicate all airline.
// 5.planeModel - java.lang.String 机型(未找到机型的以干线机型处理) 此参数为null或者""时表示不查询机场建设费 [EN] Airline Designator Code,A two-character code representing an Airline,e.g., CA
// 6.passType - java.lang.String 旅客类型(""或null或者"ad":成人;"IN":婴儿;"CH":儿童) 此参数的取值只影响机场建设费及燃油附加的数值,运价仍然为对应舱位的成人运价。
// 7.fullFareBasis - boolean 应当设置为真。
FDResult fdres = null;
try {
fdres = fdExample.findPrice("PEK", "SHA", "21JAN14", "CA", "32A", "ad", true);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(fdres);
//成人机场建设费
System.out.println("成人机场建设费:"+fdres.getAirportTax(0));
//成人燃油附加费
System.out.println("成人燃油附加费:"+fdres.getFuelTax(0));
return fdres;
}
/**
* 实现旅客姓名提取
* @return
*/
public static MultiResult ml(){
ML mlExample = new ML();
connectHost(mlExample);
// multi参数:
// 1. criteriacode - java.lang.String 指令参数:选项--可以为空,此时取默认'C',某些选项可以组合,如"GB",常用参数如下
// B 提取订妥座位的旅客(HK 和RR 的PNR)
// C 提取所有旅客记录
// R 提取RR旅客的记录
// T 提取已出票旅客
// X 提取取消的旅客
// G 提取团体旅客记录
// U 提取未证实的旅客(HL,US,UU,HN)
// N 组合选项,附着于其他选项前表示反义,如"NG"表示提取非团体(散客)定座记录
// 详细技术细则请参见中国航信主页或向中国航信咨询.
// 2.pnrOnce - boolean 指令参数:简略模式,为true表示每一个PNRNO只显示一次--默认为false
// 3.flightNo - java.lang.String 指令参数:航班号--必须有值
// 4.fltclass - char 指令参数: 提取舱位选择--默认为' ',即提取所有舱位
// 5.date - java.lang.String 指令参数:查询航班的执行日期--可以为空,此时取默认为执行查询当日,格式"DDMMM","DDMMMYY"
// 6.city - java.lang.String 指令参数:起飞城市或起飞到达城市对--可以为空,此时在该航班无经停情况下查询结果为本office在该航班上的订座记录
// 如果有经停则是本office在该航班上订取得始发地至第一经停地的的订座记录
// 如果只有始发城市则为本office在该航班该城市至下一到达地航段的订座记录
// 如果起飞到达城市均已给出则为本office在该航班中对应航段的订座记录
// 如果给出城市/城市对并非在该航班的航线中,则得到的结果中没有定座记录.
MultiResult multi = null;
try {
multi = mlExample.multi("C",false,"CA929",' ',"21JAN",null);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(multi);
return multi;
}
/**
* 旅客订座记录-旅客订座记录-旅客订座记录-旅客订座记录-旅客订座记录-旅客订座记录-旅客订座记录-旅客订座记录-旅客订座记录-旅客订座记录
*/
/**
* 成人单人单航段预定
*/
public static void sellseat1(){
SellSeat sellExample = new SellSeat();
connectHost(sellExample);
try {
//添加旅客姓名
String name = "IBETESTER/IBEGROUP";
sellExample.addAdult(name);
//添加旅客航段信息
String airNo = "CA929"; //航班号
char fltClass = 'Y'; //舱位等级
String orgCity = "PVG"; //始发城市
String desCity = "NRT"; //到达城市
String actionCode = "NN"; //行动代码
int tktNum = 1; //订座数
String departureTime = "2014-01-25"; //起飞时间
sellExample.addAirSeg(airNo, fltClass, orgCity, desCity, actionCode, tktNum, departureTime);
//添加旅客身份证信息
String airline = "CA"; //航空公司两字代码
String idtype = "NI"; //身份证件类型 NI身份证,CC信用卡,PP护照
String id = "567891234"; //对应的身份证件号码
sellExample.addSSR_FQTV(airline,idtype, id, name);
//添加旅客联系组信息
String contactinfo = "15123339999";
sellExample.addContact(contactinfo); //添加联系组。 如addContact("66017755-2509"),旅客联系电话为66017755-2509
//添加旅客出票时限
String dateLimit = "2014-01-21 12:00:00";
sellExample.setTimelimit(dateLimit);
//完成PNR必须信息输入递交主机,生成PNR
SSResult ssr = sellExample.commit1();
//PNR结果
System.out.println(ssr.getPnrno());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 成人往返单人航段预定
*/
public static void sellseat2(){
SellSeat sellExample = new SellSeat();
connectHost(sellExample);
try {
//添加旅客姓名
String name = "TESTCD/ADULT";
sellExample.addAdult(name);
//添加旅客航段信息
String airNo = "SC4651"; //航班号
char fltClass = 'Y'; //舱位等级
String orgCity = "TAO"; //始发城市
String desCity = "PEK"; //到达城市
String actionCode = "NN"; //行动代码
int tktNum = 1; //订座数
String departureTime = "2014-01-25"; //起飞时间
sellExample.addAirSeg(airNo, fltClass, orgCity, desCity, actionCode, tktNum, departureTime);
//添加旅客乘车返程航段信息
String airNo2 = "SC4651"; //航班号
char fltClass2 = 'Y'; //舱位等级
String orgCity2 = "PEK"; //始发城市
String desCity2 = "TAO"; //到达城市
String actionCode2 = "NN"; //行动代码
int tktNum2 = 1; //订座数
String departureTime2 = "2014-01-29"; //起飞时间
sellExample.addAirSeg(airNo2, fltClass2, orgCity2, desCity2, actionCode2, tktNum2, departureTime2);
//添加旅客身份证信息
String airline = "SC"; //航空公司两字代码
String idtype = "NI"; //身份证件类型 NI身份证,CC信用卡,PP护照
String id = "568427951"; //对应的身份证件号码
sellExample.addSSR_FQTV(airline,idtype, id, name);
//添加旅客联系组信息
String contactinfo = "15123339999";
sellExample.addContact(contactinfo); //添加联系组。 如addContact("66017755-2509"),旅客联系电话为66017755-2509
//添加旅客出票时限
String dateLimit = "2014-01-26 12:00:00";
sellExample.setTimelimit(dateLimit);
//完成PNR必须信息输入递交主机,生成PNR
SSResult ssr = sellExample.commit1();
//PNR结果
System.out.println(ssr.getPnrno());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* 成人单人单航段预定
*/
public static void sellseat3(){
SellSeat sellExample = new SellSeat();
connectHost(sellExample);
try {
//添加旅客姓名
String name = "IBETESTER/IBEGROUP";
sellExample.addAdult(name);
//添加旅客航段信息
String airNo = "CA1501"; //航班号
char fltClass = 'Y'; //舱位等级
String orgCity = "PEK"; //始发城市
String desCity = "SHA"; //到达城市
String actionCode = "NN"; //行动代码
int tktNum = 1; //订座数
String departureTime = "2014-01-25"; //起飞时间
sellExample.addAirSeg(airNo, fltClass, orgCity, desCity, actionCode, tktNum, departureTime);
//信息航段的添加
BookAirSeg airseg = new BookAirSeg("SHA","HGH");
sellExample.addAirSeg(airseg);