iOS应用下集成携程api(酒店和飞机票)
来源:互联网 发布:网络医托 编辑:程序博客网 时间:2024/04/29 01:13
最近一个项目中要使用酒店查询和飞机票预定,我这一通折腾,好在皇天不负有心人,最后终于一一搞定。选择了携程,为什么呢?目前国内有几家规模比较大的,例如:去哪儿,艺龙旅行,和携程。了解了一圈,最后发现,携程的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,可以借鉴下,写的不错。
2 0
- iOS应用下集成携程api(酒店和飞机票)
- MVP模式在携程酒店的应用和扩展
- 飞机票(超级脚本)
- 飞机票
- 飞机票
- 百度地图高级实例1-如何利用【百度地图API】,制作房产酒店地图?(下)
- 百度地图高级实例1-如何利用【百度地图API】,制作房产酒店地图?(下)
- 百度地图高级实例1-如何利用【百度地图API】,制作房产酒店地图?(下)
- 如何利用【百度地图API】,制作房产酒店地图?(下)——结合自己的数据库
- 订酒店接口 携程酒店在线预订
- 润乾集算器与帆软报表应用集成(api)
- Mac下检测ios应用内是否有私有API
- IOS应用接iOS聚合支付(SDK集成说明)
- 如何利用【百度地图API】,制作房产酒店地图?(上)——制作自定义标注和自定义信息窗口
- 简单的网页内容抓取实例(携程酒店)
- iOS 持续集成- Mac下命令启动和关闭Jenkins
- iOS 持续集成- Mac下命令启动和关闭Jenkins
- Windows 下 API hook 和 Windows hook 应用区别
- ANSI X12
- java实现多人在线聊天室(Socket与ServerSocket应用)
- 为IPN做铺垫的航天任务-好奇号,信使号,深度撞击,月球轨道侦查LRO
- 数据库创建
- 此前
- iOS应用下集成携程api(酒店和飞机票)
- 黄芪桂圆枸杞红枣茶的作用
- mvn编译时下载源代码
- Java多线程(2)--线程的中断和中断的控制
- Oracle中快速删除某个用户下的所有表数据 禁用所有外键
- SOCKET, TCP/UDP, HTTP, FTP
- Zxing.jar生成带有logo的二维码
- 一、阻塞非阻塞与同步异步
- 创建动态数组