iOS应用下集成携程api(酒店和飞机票)

最近一个项目中要使用酒店查询和飞机票预定,我这一通折腾,好在皇天不负有心人,最后终于一一搞定。选择了携程,为什么呢?目前国内有几家规模比较大的,例如:去哪儿,艺龙旅行,和携程。了解了一圈,最后发现,携程的api免费的。所以我就选择了携程。如果你对携程api有什么疑虑,或者不清楚,不知道怎么使用的,请留言,我会尽快回复你的。目前网上的资料(ios用的)比较少,所以我就写了这篇博客让大家尽量少走些弯路。

1>首先在使用携程api的时候你需要明白什么是soap?

SOAP(SimpleObjectaccessPRotocal,简单对象访问协议)技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问。SOAP是把成熟的基于HTTP的WEB技术与xml的灵活性和可扩展性组合在了一起。

2>作为ios开发者,当我们请求时需要xml格式的请求体就比较蛋疼了。今天带大家先简单看看soap,简单对象访问协议,或者叫做简单交换协议。我的理解就是我们在请求的时候发一个请求,这个请求带上xml格式请求体。然后呢,服务器在接受到我们xml请求体后,返回给我们一个xml结果。然后我们开始解析。就是这样的一个请求的过程。

2.1>那么有些同学可能会问了,怎么封装xml请求体呢?

下面就是xml请求体了

  NSString *soapBody = @"<?xml version=\"1.0\" encoding=\"utf-8\"?>"
    "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">"
    "<soap:Body>"
    "<Request xmlns=\"http://ctrip.com/\">"
    "<requestXML>AllianceID=\"你的联盟id\" SID=\"你的站点id\" TimeStamp=\"1416436597\" Signature=\"你的签名\" RequestType=\"OTA_Ping\" AsyncRequest=\"false\" Timeout=\"0\" MessagePriority=\"3\"</requestXML>"
    "</Request>"
    "</soap:Body>"
    "</soap:Envelope>";

3>那怎样post给服务器呢?

我们平常所说的xml请求体就是一个data,NSData,首先我们需要将字符串转换成为data,然后post给服务器。这样服务器在收到请求后就会回应我们。例如:

    NSMutableURLRequest *request=[NSMutableURLRequest requestWithURL:[NSURL URLWithString:WebServicesURL]];
    NSString *msgLength = [NSString stringWithFormat:@"%lu", (unsigned long)[message length]];

        // 添加请求的详细信息,与请求报文前半部分的各字段对应
    [request addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];

    [request addValue: @"http://ctrip.com/Request" forHTTPHeaderField:@"SOAPAction"];

	[request addValue: msgLength forHTTPHeaderField:@"Content-Length"];
        [request setHTTPMethod:@"POST"];

        [request setHTTPBody:[message dataUsingEncoding:NSUTF8StringEncoding]];

        NSURLConnection *connection=[[NSURLConnection alloc] initWithRequest:request delegate:self];
        if (connection) {
            soapData=[[NSMutableData alloc] init];
        }

    [connection start];

4>好了,到了现在基本上已经完成了请求的步骤,剩下的就是解析了。我们可以在- (void)connection:(NSURLConnection
*)connection didReceiveData:(NSData *)data方法中打印data,如果有值就说明我们请求成功了。

解析的话大家去网上搜索KissXml,可以借鉴下,写的不错。

时间: 2024-10-11 05:19:15

iOS应用下集成携程api(酒店和飞机票)的相关文章

SOAP-XML请求(iOS应用下集成携程api)

用携程机票为例: 携程联盟 飞机票.门票 联盟ID:278639 站点ID:739462 密钥KEY:BE57B925-E8CE-4AA2-AC8E-3EE4BBBB686F API_URL:openapi.ctrip.com http://open.ctrip.com/InlandFlight/OTA_FlightSearch.aspx 1.首先在使用携程api的时候你需要明白什么是soap? SOAP(SimpleObjectaccessPRotocal,简单对象访问协议)技术有助于实现大量

unity3d导出到IOS程序下 集成unity3dAR功能

转载自: 来自AR学院(www.arvrschool.com),原文地址为:http://www.arvrschool.com/index.php?c=post&a=modify&tid=687&pid=0 谢谢合作! 官方交流群:129340649

前有机票,后有酒店,携程又一重头被去哪儿超越?

日前,在去哪儿庄辰超的内部邮件中公布了国庆当天的入住间夜量,达到了50万间夜,单日年对年增速创下了最近五年的新高.同时庄辰超还表示,去哪儿酒店业务历经艰难,已经接近或者峰值达到市场第一.去哪儿酒店获得如此惊人的增速,究其原因,刘旷认为主要有以下几个方面: 1.得益于去哪儿具有狼性化的线下地推团队.从去年1月份开始,去哪儿成立目的地事业部,正式开始了酒店直签业务,短短一年多的时间,去哪儿网的酒店直签数量就达到了近30万家.通过线下地推团队的建设,去哪儿网加强了对整体酒店资源的控制,尤其是在广大的三

去哪儿携程酒店五折大战十大对比分析

近日由去哪儿率先发动的酒店五折大战再次引发了整个酒店市场的集体恐慌,而艺龙携程的跟进则无疑让这场风暴变得更加猛烈.携程和去哪儿分别作为整个在线酒店预订市场的老大和老二,今天他们二者的一颦一笑都会影响到整个酒店市场.那么,这一次的五折大战究竟胜负会如何?我们先来看看这一次去哪儿和携程的酒店促销活动: 去哪儿:这一次去哪儿将5折酒店促销推广到全国,范围涉及到300多个城市,参与酒店多达20多万家,完全由去哪儿自掏腰包补贴,且目前暂无截止的迹象. 携程:携程推出的酒店5折促销活动计划实施时间为2015

携程移动端架构演进与优化之路

从2013年开始,我们先后进行了不同路径的多样性架构探索,在实践过程中也经历了各种曲折与压力,最终实现了2015年的这个全新架构,实现了无线服务端基于API Gateway的架构框架.客户端的模块化开发.测试与部署,支持运行期间的模块实时加载.按需Lazyloding.Remote加载,从而实现模块级动态升级以及代码级热修复,并 且逐步推动数百人的客户端研发团队由不堪重负.效率低下的大版本大火车开发模式向模块间独立迭代.发布轻量级的开发方向演进. 同时在架构探索期间,携程做了App相关的很多性能

携程合体去哪儿,与途牛度假旅游市场争高下

作者:楠沨 [IT战略家] 本次度假业务的合并,除了双方在线旅游市场的携手,还包括了地面BU(旅游事业部)的合并,进一步提升双方在包价旅游业务和地面碎片化业务地位的同时,携程旅游将获得去哪儿度假的用户流量,在团队效率上也会有所提高. 近来,携程在资本市场动作频频.先是战略投资旅游百事通,通过后者拥有的5000多家线下门店布局二.三线城市,后又与美国海鸥.纵横.途风三大旅行社战略合作,进军美国旅游市场,扩展线下旅游业务.本次合并去哪儿,是携程整合在线度假市场"生态圈"的又一大动作.同时,

携程事件简单故障分析

互联网安全越来越严峻 自从windowsxp停止更新维护后,世界范围内的安全事件就层出不穷,几乎一发不可收拾. windows漏洞很多,入侵windows服务器基本上不是问题,所以安全事件不可避免. linux最近爆出很多漏洞,还有很多漏洞未爆出. 感觉unix比较安全,比如sinox操作系统.但是只是操作系统层面安全还不够,应用程序安全跟操作系统无关. 应用程序的漏洞,随着应用程序复杂度增加,漏洞可能也增加,而代码安全审核就很重要. 携程故障分析 1.线上数据全部被删,再次发布依旧被删 线上数

微信小程序体验(1):携程酒店机票火车票

在 12 月 28 日微信公开课上,张小龙对微信小程序的形态进行了阐释,小程序有四个特定:无需安装.触手可及.用完即走.无需卸载. 由于携程这种订酒店.火车票和机票等工具性质非常强的服务,非常符合张小龙的对小程序的定义,所以很适合做一个小程序. 今天,有机会体验了一下携程酒店机票火车票这个小程序,在这里跟大家分享一下. 扫一扫携程提供的二维码之后,看到携程小程序的名字为"携程酒店机票火车票". 携程小程序加载页面 确认进入体验版之后,就正式加载进入小程序,跳到了以下这个页面--没错,就

(反反爬虫)携程酒店的eleven

关于携程酒店的爬虫,网上有很多,我仔细看了下,大概的分成了两派:selenuim与python执行JS,夹生饭大佬在知乎的专栏中也讲述的很清楚了,我不想再复刻他的文章了,而且我在github中也找到了开源项目针对携程酒店的,链接点击这里,我在复现夹生饭大佬代码的过程中始终有一段代码没找到 callback = """ var callback = function() { for (var t = ["A", "B", "C&