惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
I
InfoQ
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 【当耐特】
小众软件
小众软件
B
Blog RSS Feed
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
Microsoft Security Blog
Microsoft Security Blog
Last Week in AI
Last Week in AI
H
Help Net Security
爱范儿
爱范儿
云风的 BLOG
云风的 BLOG
博客园 - 司徒正美
Y
Y Combinator Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
Microsoft Azure Blog
Microsoft Azure Blog
L
LangChain Blog
WordPress大学
WordPress大学
GbyAI
GbyAI
Google DeepMind News
Google DeepMind News
腾讯CDC

博客园 - 落叶潇潇雨

Can't get WebApplicationContext object from ContextRegistry.GetContext(): Resource handler for the 'web' protocol is not defined xml序列化与反序列化 Asp.net 导出Excel How to debug Typescript in browser log4net使用的关键点 DataContractSerializer序列化与反序列化遇到的奇怪问题 图文安装Windows Template Library - WTL Version 9.0 WCF的传输安全(读书笔记) Asp.net mvc 各个组件的分离 csdn回到顶端 SQL多行变一列 Timer的schedule和scheduleAtFixedRate方法的区别解析 android 主线程和子线程之间的消息传递 activity生命周期 瀑布流插件 CSS自适应宽度圆角按钮 ajaxFileUpload上传文件和表单数据 Ajax上传表单数据和文件 使用Rhino Mocks
同程旅游网开放平台SDK开发完成
落叶潇潇雨 · 2013-08-31 · via 博客园 - 落叶潇潇雨

最近利用业余时间,使用了同程旅游网的开放平台,并对大部分的方法进行了调用,发现有很多不好用的地方,比如

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:https://files.cnblogs.com/jackhuclan/tcsdk.rar

sourcecode:https://files.cnblogs.com/jackhuclan/tcsdk_sourcecode.zip