您的位置:首页 > 其它

iPhone调用WCF服务

2012-05-16 11:44 393 查看
之前在与服务器通讯时,都是用的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的跨平台的调用。





1、创建简单的WCF服务 

服务契约代码如下:





实现如下:





2、在iPhone中调用WCF

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





点击查看大图

NSURLConnection的委托方法:





点击查看大图

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



 

 点击查看大图

运行:



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息