最近一个项目中要使用酒店查询和飞机票预定,我这一通折腾,好在皇天不负有心人,最后终于一一搞定。选择了携程,为什么呢?目前国内有几家规模比较大的,例如:去哪儿,艺龙旅行,和携程。了解了一圈,最后发现,携程的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,可以借鉴下,写的不错。

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

  1. php携程 线程,携程api开发解决方法

    携程api开发 本帖最后由 lziyanl 于 2014-06-03 13:53:29 编辑 如何获取上图的内容信息?在携程没找到对应接口,询问官方群,基本不搭理! ------解决方案------- ...

  2. 航班查询、监控(携程API调用)

    航班查询.监控 这只是一个监控机票的程序 这只是一个监控机票的程序 当初打这段程序的目的就是为了看看机票有没有降价(笑) 这段程序主要调用了 携程API , 程序目前可以查询航班的相关信息(航班编号. ...

  3. 干货 | 机器学习模型在携程海外酒店推荐场景中的应用

    "关于作者:Louisa,携程算法工程师,热爱前沿算法和技术在个性化推荐和广告建模等业务的性能优化和落地. 大数据产业创新服务媒体 --聚焦数据 · 改变商业 导读 互联网企业的核心需求是& ...

  4. 干货 | 跨多业务线挑战下,携程订单索引服务的1.0到2.0

    作者简介 唐巍,携程用户平台部订单服务组资深后端开发,在互联网尤其是移动互联网方面有丰富的经验,目前主要负责OrderIndex的维护和架构升级工作. 经过团队几个月的努力,我们最近终于完成了OI(订 ...

  5. 干货 | “深耕内容”背景下,携程如何做景酒优质内容的挖掘

    作者简介 莱灵图髯客,携程高级算法工程师,主要负责自然语言处理领域相关工作,对半监督学习.自然语言生成.实体识别.文本分类及检索等领域有浓厚兴趣. 一.背景介绍 伴随信息时代的快速发展,消费者的消费观 ...

  6. 滴滴打车比别人贵?携程订酒店比别人贵?商家拿你的数据去作恶你知道吗?

    在庞大的数据面前,人类越来越像一个提供输入的变量角色,任何试图伪装和保护自己的举动,在360度无死角的数据监控下都显得徒劳.你使用的APP,在试图了解和定义你. 律师李欣然(化名)第一次对某大型旅行票 ...

  7. 携程商旅酒店直连平台的实践(一)

    现在才发现,离我上一篇博文竟然接近1年没有发过东西了.惊呆了我.我要每周都写了,就算不写技术也要写其他东西,不然真的是思考的多,没有留下记录都是空白. 在携程商旅主要做酒店直连这一块.商旅酒店其实架构 ...

  8. Pyhton携程上酒店每个房型价钱详细的爬虫

    最近由于工作需要,做了一个携程酒店的爬虫,初步达到了一些成果. 由于python是半路出家(之前笔者是学习java的,并且现在也一直在学习.),在把项目分 享出来看能否给网友们一些帮助的同时,也希望有 ...

  9. 干货 | 10W+ K8s容器数量下,携程如何打造统一弹性调度体系

    作者简介 本文作者为携程Cloud Container团队的鸿飞,静雪,诗燕.该团队负责K8s容器平台的研发和优化工作,专注于推动基础设施云原生架构升级,以及创新产品的研发和落地,持续提升资源利用率. ...

最新文章

  1. golang中的strings.ContainsRune
  2. yii blog页面不能正确显示js,css文件的原因分析
  3. 94.cache 和虚拟存储器的功能不同
  4. 到底死不死我就请了七天假_“你到底死不死?我只请了7天假”
  5. vue 得到枚举个数_Package - vue-enum
  6. java设置默认参数_关于java:如何设置默认方法参数值?
  7. 关于Java Collections Framework的一些总结(2)
  8. php代码敲得很慢,thinkphp好慢 帮忙看看什么原因?已贴代码
  9. Linux内核 之 GDT LDT与分段
  10. 新变局、新机遇,新发展 新华锦受邀参加2020中欧企业家峰会青岛论坛
  11. android 无线传递文件夹,android 通过WIFI实现文件传输
  12. TestNg测试框架
  13. 神州租车还有这些新玩法?打造了行业新标杆
  14. EXCEL:摒弃千篇一律,修改工作表中网络线的颜色
  15. ArcMap中的各种GIS文件的变换(img转tif,tif坐标系转换,shp坐标系转换)
  16. HITCSAPP大作业 2021 春
  17. 使用jupyter notebook运行卷积神经网络出现的版本问题
  18. 10条SKETCH的秘诀,为你提高工作的效率
  19. 旅行时通过树莓派和 iPad Pro 备份图片
  20. 微信小程序 自定义搜索框并关键字高亮

热门文章

  1. 对Habit Browser浏览器网页翻译问题的凑合解决方法
  2. 霍常亮app淘宝客开发视频教程第7节
  3. 师兄新作!Cell Stem Cell背靠背 | 吴军等建立了一种全新的全能干细胞
  4. 前端面试题--水平垂直居中的方法
  5. 精彩的javascript代码(包括表单校验等等)
  6. 自己做的Google地图下载工具(一)
  7. css之-各种基本图形画法总结(css3.0)
  8. Spring security 集成 JustAuth 实现第三方授权登录
  9. Java, 正则表达式之打折问题。
  10. 让人们久等了的TCP BBR v2 0快要出炉了