同程旅游网开放平台SDK开发完成
最近利用业余时间,使用了同程旅游网的开放平台,并对大部分的方法进行了调用,发现有很多不好用的地方,比如
1.同一个开放平台居然有几个调用地址,景区调用http://tcopenapi.17usoft.com/handlers/scenery/queryhandler.ashx ,酒店调用http://tcopenapi.17usoft.com/handlers/hotel/QueryHandler.ashx。
2.只能返回xml格式,在现在大多数平台可以返回json的情况下,居然只能返回xml,而且还不能直接反序列化为对象。除非自己实现这个反序列化的过程。
3.错误信息提示不够充分,无处可以查询详细信息。
4.客户端调用非要传入clientIp,哪怕是127.0.0.1都可以,实在不明白这样做有和意义。
5. 实体对象不一致,同一个对象,不同接口返回的xml用不同的tag,让你无法使用反射等特性来对给属性赋值。
......
以上总总,总之一句话,不好用。
本人在使用的过程中,力图抹平这些不一致。开发了一整套针对同程网开放平台的sdk。上图。

上图是sdk的整体结构,
Domain ->实体对象文件夹
Facade ->接口调用外观层,里面有两个Facade,里面都是静态方法,后面介绍这两个类的具体用法
Request ->请求参数的封装,封装后的request,将在发送请求到服务端的时候,自动序列化为同程网开放平台接口所需要的xml。
Response ->返回数据的封装,封装后的response,将直接是对象的形式,你可以尽情地点,然后选择属性,然后就ok了。
Util->sdk通用的工具类。

上图是接口外观层的封装,都是静态方法,你只需要实例化request,然后设置参数,然后调用外观层方法,就可以得到所要的结果。

上图示范如何使用。现在使用是不是非常之简单哇!


以上两图是quick watch的图片。已经全部包装成对象的形式,和返回的xml基本一致。
鉴于很多朋友找我要sdk,特开放源码下载,如有问题请自行修改并测试
bin:http://files.cnblogs.com/jackhuclan/tcsdk.rar
sourcecode:http://files.cnblogs.com/jackhuclan/tcsdk_sourcecode.zip
同程旅游网开放平台SDK开发完成的更多相关文章
- Navi.Soft30.开放平台.百度.开发手册
1系统简介 1.1功能简述 现在是一个信息时代,并且正在高速发展.以前获取信息的途径非常少,可能只有电视台,收音机等有限的来源,而现在的途径数不胜数,如:QQ,微信,官方网站,个人网站等等 本开发手册 ...
- 百度 LBS 开放平台,开发人员众測计划正式启动
Hi各位亲爱滴开发人员: 你是否以前-- 期望第一时间率先接触到百度LBS开放平台的最新功能? 期望被邀请作为最最尊贵的首批试用志愿者感受志愿者的特权? 期望自己的意见被产品经理採纳.优化功能.从 ...
- 百度语音识别开放平台SDK用法
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zpf8861/article/details/30229039 百度Android语音识别SDK分在 ...
- Navi.Soft30.开放平台.聚合.开发手册
1系统简介 1.1功能简述 现在是一个信息时代,并且正在高速发展.以前获取信息的途径非常少,可能只有电视台,收音机等有限的来源,而现在的途径数不胜数,如:QQ,微信,官方网站,个人网站等等 本开发手册 ...
- 微信开放平台API开发资料
微信大概两年前开启了微信公众平台的API供开发者使用,从账号登陆.消息发送.用户账号管理.公众号菜单.客服接口.微信商店接口.用户卡券接口 以及微信支付接口.可以说是全方面覆盖了电商所需要的要素,与阿 ...
- DevStore开发人员服务有奖征文:小谈新浪微博开放平台
DevStore开发人员服务有奖征文:小谈新浪微博开放平台 笔者接入新浪微博开发平台也有一段时间了,对整个平台的接入也算比較熟悉,新浪提供了统一的API接口,能够让开发人员更方便的使用API来实现自己 ...
- Navi.Soft30.开放平台.腾讯.开发手册
1系统简介 1.1功能简述 现在是一个信息时代,并且正在高速发展.以前获取信息的途径非常少,可能只有电视台,收音机等有限的来源,而现在的途径数不胜数,如:QQ,微信,官方网站,个人网站等等 本开发手册 ...
- 微信公众账号 Senparc.Weixin.MP SDK 开发教程 索引
Senparc.Weixin.MP SDK从一开始就坚持开源的状态,这个过程中得到了许多朋友的认可和支持. 目前SDK已经达到比较稳定的版本,这个过程中我觉得有必要整理一些思路和经验,和大家一起分享. ...
- OAuth简介及sina微博开放平台
OAuth简介及sina微博开放平台 2010-10-26 13:15:25 标签:新浪 sina 微博 OAuth 开放平台 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者 ...
随机推荐
- HTML5基础-Mark标签高亮显示文本
1.mark标签使用 <mark></mark> 2.mark作用 使用mark标签元素,可以高亮显示文档中的文字以达到醒目的效果. 3.mark使用代码 <!DOCTY ...
- 安装完grunt和grunt-cli仍然无法识别grunt
如题: 在安装完grunt-cli和grunt之后,仍然不识别grunt. 反复确认是-g安装... 原因: 有可能是nodejs安装出现问题,到时npm的路径没有出现在环境变量里面. 把C:\Use ...
- atitit.sql server2008导出导入数据库大的表格文件... oracle mysql
atitit.sql server2008导出导入数据库大的表格文件... 1. 超过80M的文件是不能在查询分析器中执行的 1 2. Oracle ,mysql大的文件导入 1 2.1. 使用sql ...
- paip.花生壳 服务启动失败 以及不能安装服务,权限失败的解决
paip.花生壳 服务启动失败 以及不能安装服务,权限失败的解决 系统win7 NewPhDDNS_1.0.0.30166.exe 作者Attilax 艾龙, EMAIL:1466519819@ ...
- NSIS总结1——以管理权限运行
在Name "${PRODUCT_NAME} ${PRODUCT_VERSION}" 到第一个Section之间插入一行代码 RequestExecutionLevel admin ...
- Java攻城狮面试考题
<html> <head> <meta http-equiv="Content-Type" content="text/html; char ...
- curl常用操作
1.cURL介绍 cURL 是一个利用URL语法规定来传输文件和数据的工具,支持很多协议,如HTTP.FTP.TELNET等.最爽的是,PHP也支持 cURL 库.本文将介绍 cURL 的一些高级特性 ...
- python实现自动发送微博,当自己写博客时同步上去。
一.需求: 自己在github上搭建一个基于Jekyll的博客(http://beginman.cn/),每次写完博客后就要push上去,博客写的再好,基本上没人访问,为了增加访问量,就想利用起来微博 ...
- DotNetMQ的一个小demo
DotNetMQ是一个新的.独立的.开源的,完全基于C#和.NET Framework3.5的消息队列系统 下载源代码 - 1.28 MB 下载二进制文件 - 933 KB 下载例子 - 534 KB ...
- iOS javascript js 交互
//JS里的一个回调.比如网页上的某个按钮点一下之后.JS会调用setKey这个方法. JSContext *context1 = [self.startView valueForKeyPath:@& ...