中航信E-Build基础API使用实例

 

转载请注明出处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);
			
			
	
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
中航e-build接口文档是指中航公司提供给开发人员的一份详细说明文档,旨在帮助开发人员了解和使用中航的e-build接口服务。 该文档通常包含以下内容: 1. 概述:对e-build接口的功能和作用进行简要介绍,帮助开发人员了解e-build接口的基本概念和使用场景。 2. 接口调用方式:详细描述了开发人员如何通过HTTP请求调用中航的e-build接口,并提供了调用示例和参数说明。 3. 接口参数:列出了每个接口可能用到的参数及其作用,包括必要参数和可选参数,并解释了参数的取值范围和格式要求。 4. 接口响应:详细说明了接口调用后中航服务器返回的响应内容,包括响应状态码、响应格式和各字段的含义。 5. 错误处理:解释了接口调用过程中可能出现的错误类型和对应的错误码,以及开发人员在遇到错误时应该如何处理和调试。 通过阅读中航e-build接口文档,开发人员可以了解如何调用接口实现各种功能,例如创建订单、查询订单状态、取消订单等。开发人员可以根据文档中提供的指引和示例代码快速上手,并通过对接口参数和响应进行解析,实现与中航的系统对接。 最后值得注意的是,中航e-build接口文档通常需要在申请接口许可后才能获取,并且可能会随着中航系统的更新而有所变动,因此开发人员在使用时应确保使用最新版本的文档,并与中航的技术支持团队保持及时沟通和协作,以确保接口调用的稳定和正确性。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值