51book接口调用原理

 

目录

[隐藏]

 说明

通过本快速上手指南,仅需要两步即可学会如何调用一个接口,若需要了解更多内容,可访问开发指南

Quick desc.png

[返回顶部] 51book接口调用原理

51book开发平台的3.0及以上版本接口都提供了两种调用方式:webservice调用方式和POST调用方式。
2.0目前只提供了webservice 的调用方式。两种方式调用的流程图如下:

[返回顶部] 方式一:Webservice方式

Webservice调用51book开放平台服务器交互流程图,如下图:

Api webservice call.png

[返回顶部] 方式二:POST方式

[返回顶部] 10分钟快速学会使用API

我们用实例的形式展现如何调用51book平台接口。演示实例:获取51book平台的政策数据,具体步骤如下:

[返回顶部] 步骤一:获取调用51book平台API的账号及安全码

对每个接入51book开放平台的用户,在开发测试阶段需要申请测试环境的账号和安全码。系统正式上线时需重新申请正式环境的账号和安全码;

本实例我们在测试环境的账号和安全码是:

账  号:SDFH
安全码:找51book提供

[返回顶部] 步骤二:获取调用接口地址

开发测试地址:http://net.liantuo.com:8000/liantuo/service/getPolicyDataService2.0?wsdl

[返回顶部] 步骤三:生成webservice客户端代码(java)

我们这里使用jdk自带的生成webservice客户端工具wsimport,语法如下:

wsimport -s 生成代码存放目录 接口wsdl地址 

实例:
wsimport -s ./ http://net.liantuo.com:8000/liantuo/service/getPolicyDataService2.0?wsdl 

执行该指令后,将会在当前目录生成代码,将代码拷到对应的项目

生成的代码目录结果如下:
Wsimport dic.jpg

[返回顶部] 步骤四:调用获取政策接口(java)

package com.liantuo;
 
import javax.xml.bind.JAXBElement;
import javax.xml.namespace.QName;
 
import com.liantuo.util.Md5Encrypt;
import com.liantuo.webservice.version2_0.SecurityCredential;
import com.liantuo.webservice.version2_0.getpolicydata.GetPolicyDataReply;
import com.liantuo.webservice.version2_0.getpolicydata.GetPolicyDataRequest;
import com.liantuo.webservice.version2_0.getpolicydata.GetPolicyDataService20;
import com.liantuo.webservice.version2_0.getpolicydata.GetPolicyDataService20PortType;
 
/**
 * 调用51book平台获取政策数据的接口实例代码
 * 
 * @author anker
 */
public class Get51BookPolicyClient {
 
    public static void main(String args[]) throws Exception {
        // 调用生成的webservice客户端
        GetPolicyDataService20 service = new GetPolicyDataService20();
        GetPolicyDataService20PortType port = service.getGetPolicyDataService20HttpPort();
 
        GetPolicyDataRequest request = buildRequest(); // 构建请求51book的参数
        GetPolicyDataReply reply = port.getPolicyData(request); // 从51book返回的数据
    }
 
    /**
     * 构建请求参数
     * 
     * @return
     */
    private static GetPolicyDataRequest buildRequest() {
 
        String agentCode = "SDFH"; // 从51book申请的测试账号
        String securityCode = "*******"; // 安全码(保密)
 
        String airline = ""; // 航空公司二字码
        String departure = ""; // 出发地三字码
        String arrival = ""; // 抵达地三字码
        Integer page = 1; // 页码
        Integer rowPerPage = 3; // 每页条数
        String isIncludeSpecialPolicy = "0"; // 是否包括特价政策
        String isBusinessUnitPolicy = "0"; // 是否包括特殊政策
 
        // 安全,加密
        StringBuilder sign = new StringBuilder();
        sign.append(agentCode).append(airline).append(departure).append(arrival)
            .append(page).append(rowPerPage).append(isIncludeSpecialPolicy).append(isBusinessUnitPolicy).append(securityCode);
        SecurityCredential credential = new SecurityCredential();
        credential.setAgencyCode(agentCode);
        credential.setSign(Md5Encrypt.md5(sign.toString())); // 加密
 
        GetPolicyDataRequest request = new GetPolicyDataRequest();
        request.setArrival(new JAXBElement<String>(
                new QName("http://getpolicydata.version2_0.webservice.liantuo.com", "arrival"), String.class, arrival));
        request.setCredential(credential);
        request.setDeparture(new JAXBElement<String>(
                new QName("http://getpolicydata.version2_0.webservice.liantuo.com", "departure"), String.class, departure));
        request.setIsBusinessUnitPolicy(new JAXBElement<String>(
                new QName("http://getpolicydata.version2_0.webservice.liantuo.com", "isBusinessUnitPolicy"), String.class, isBusinessUnitPolicy));
        request.setIsIncludeSpecialPolicy(new JAXBElement<String>(
                new QName("http://getpolicydata.version2_0.webservice.liantuo.com", "isIncludeSpecialPolicy"), String.class, isIncludeSpecialPolicy));
        request.setPage(new JAXBElement<Integer>(
                new QName("http://getpolicydata.version2_0.webservice.liantuo.com", "page"), Integer.class, page));
        request.setRowPerPage(new JAXBElement<Integer>(
                new QName("http://getpolicydata.version2_0.webservice.liantuo.com", "rowPerPage"), Integer.class, rowPerPage));
 
        return request;
    }
}

[返回顶部] 下载演示代码

实例源码下载: Get51bookPolicyDataClient.rar

名字空间
变换
动作
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页