iPhone调用WCF服务

来源:互联网 发布:韦德生涯季后赛数据 编辑:程序博客网 时间:2024/04/29 05:19

之前在与服务器通讯时,都是用的Web Service,现在有的后台开始采用WCF服务。

WCF概述。

Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口 可以翻译为Windows通讯接口,它是.NET框架的一部分,由 .NET Framework 3.0 开始引入,与 Windows Presentation Foundation及 Windows Workflow Foundation并行为新一代 Windows操作系统以及 WinFX 的三个重大应用程序开发类库。在 .NET Framework 2.0 以及前版本中,微软发展了 Web Service (SOAP with HTTP communication),.NET Remoting (TCP/HTTP/Pipeline communication) 以及基础的 Winsock 等通信支持,由于各个通信方法的设计方法不同,而且彼此之间也有相互的重叠性(例如 .NET Remoting 可以开发 SOAP, HTTP 通信),对于开发人员来说,不同的选择会有不同的程序设计模型,而且必须要重新学习,让开发人员在使用中有许多不便。同时,面向服务架构(Service-Oriented Architecture) 也开始盛行于软件工业中,因此微软重新查看了这些通信方法,并设计了一个统一的程序开发模型,对于数据通信提供了最基本最有弹性的支持,这就是 Windows Communication Foundation。


之前WebService对应的文件类型是asmx,而WCF对应的文件类型是scv。iPhone上调用WCF要比WebService麻烦一点。

WCF的弹性可能就在于是最基本的SOAP协议,客户端需要Format SOAP协议的文本,再用Http的Post方法发给服务器端。


下面有一个微软的MVP写的一个示例,与大家分享。

转载地址:http://mobile.51cto.com/iphone-252869.htm


一些复杂的逻辑处理放到服务端实现,客户端与服务端通过XML交互,在iPhone客户端解析XML通过cocoa展示数据。由于iPhone和DoNet是两个完全不同的平台。iPhone依靠mac系统平台,DoNet依赖Windows系统平台。这篇文章我将通过一个Hello World程序讲述一下通过WCF实现从mac系统到Windows的跨平台的调用。

iPhone与DoNet平台交互

1、创建简单的WCF服务 

服务契约代码如下:

服务契约代码

实现如下:

实现

2、在iPhone中调用WCF

与DoNet调用WCF服务不同,这里使用NSURLConnection去获取WCF服务端的数据,代码如下:

NSURLConnection

点击查看大图

NSURLConnection的委托方法:

NSURLConnection的委托方法

点击查看大图

解析XML的中Hello World的委托方法,对于Objective-C解析XML可以看我的上一篇博客:

解析XML 

 点击查看大图

运行:

运行结果





原创粉丝点击