详解跨平台iPhone中调用WCF服务(soap通信)

详解跨平台iPhone中调用WCF服务(soap通信),第1张

概述iPhone中调用WCF服务是本文要介绍的内容,由于对移动平台充满着好奇与兴趣,最近着手了iPhone开发和学习。学习的路线是从objective-c到cococa。方法是看了两本入门的英文书,还有就是学习apple的sdk。对于产品的基本想法是服务端用.net,手机客户端用iPhone。 一些复杂的逻辑处理放到服务端实现,客户端与服务端通过XML交互,在iPhone客户端解析XML通过cocoa

iPhone中调用WCF服务是本文要介绍的内容,由于对移动平台充满着好奇与兴趣,最近着手了iPhone开发和学习。学习的路线是从objective-c到cococa。方法是看了两本入门的英文书,还有就是学习apple的sdk。对于产品的基本想法是服务端用.net,手机客户端用iPhone。

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

1、创建简单的WCF服务

 

                                      1、创建简单的WCF服务

服务契约代码如下  


 

2、在iPhone中调用WCF

与donet调用wcf服务不同,这里使用NSURLConnection去获取WCF服务端的数据,代码如下:(单击可放大)

 

Nsstring *soapMessage=[NsstringstringWithFormat:

  @"<?xmlversion="1.0" enCoding"UTF-8"?>\n"

 "<SOAP-ENV:Envelope \n"

 "xmlns:xsd="http://www.w3.org/2001/XMLSchema"\n"

 "xmlns:SOAP-ENC="http://schemas.xmlsoap.org/envelope/ "\n"

 "SOAP-ENV:enCodingStyle="http://schemas.xmlsoap.org/enCoding/"\n"

 "xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">\n"

 "<SOAP-ENV:Body>\n"

  "<Getdataxmls="http://tempuri.org/">"

 "</GetData>\n"

 "</SOAP-ENV:Body>\n"

 "</SOAP-ENV:Envelope>"

  ];

 

   NSURL *url=[NSURLURLWithString:@"http://10.5.23.117:8008/servicel.svc"];

NSMutableURLRequest*theRequest=[NSMutableURLRequestrequestWithURL:url];

Nsstring *msgLength=[NsstringstringWithFormat:@"%d",[soapMessage length]];

[theRequest addValue:@"text/xml;charset=utf-8"forhttpheaderFIEld:@"Content-Type"];

[theRequestaddValue:@"http://tempuri.org/ISerVice1/GetData"forhttpheaderFIEld:@"SOAPAction"];

[theRequest addValue:msgLengthforhttpheaderFIEld:@"Content-Length"];

[theRequestsethttpMethod:@"POST"];

[theRequest sethttpBody:[soapMessagedataUsingEnCoding:NSUTF8StringEnCoding]];

NSURLConnection*theConnection=[[NSURLConnection alloc]initWithRequest:urldelegate:self];

if (theConnection) {

webData=[[NSMutableDataalloc]retain];

}

else {

NSLog(@"the Connection isnil");

NSURLConnection的委托方法:



-(voID)connection:(NSURLConnection *)connectiondIDReceiveResponse:(NSURLResponse *)response { [receivedData setlength:0]; } - (voID)connection:(NSURLConnection *)connectiondIDReceiveData:(NSData *)data { [receivedData appendData:data];
return; } - (voID)connectionDIDFinishLoadi ng:(NSURLConnection*)connection {  Nsstring *theXML = [[Nsstring alloc]initWithBytes: [webData mutableBytes] length:[webData length]enCoding:NSUTF8StringEnCoding];         NSLog(theXML);         [theXMLrelease];                  //重新加載xmlParser         if(xmlParser )         {                 [xmlParserrelease];         }         xmlParser= [[NSXMLParser alloc] initWithData: webData];         [xmlParsersetDelegate: self];         [xmlParsersetShouldResolveExternalEntitIEs: YES];         [xmlParserparse];         [connectionrelease];         //[webDatarelease]; 总结

以上是内存溢出为你收集整理的详解跨平台iPhone中调用WCF服务(soap通信)全部内容,希望文章能够帮你解决详解跨平台iPhone中调用WCF服务(soap通信)所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062714.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)