注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

云水禅心

淡若秋菊何妨瘦, 清到梅花不畏寒.

 
 
 

日志

 
 

iPhone开发中使用Cocoa XML RPC Framework  

2012-05-04 23:56:21|  分类: iphone |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

iPhone开发中使用Cocoa XML RPC Framework是本文要介绍的内容,最近做一个项目需要和rpc_xml打交道,原来一直想解析xml啊,方法挺多,可是以xml格式向服务器发送数据使用soap确实听麻烦,就一个boby我加“\n"就挺费时的。幸亏有个框Cocoa XML-RPC Framework,省去了我许多麻烦,可是在使用框架时遇到了许多问题,使我非常纠结,在网上找相关的配置却少的可怜,弄了一天总算是知道如何使用了。

1、下载The Cocoa XML-RPC Framework  ,下载地址为:

  1. http://github.com/eczarny/xmlrpc 

2、下载以后解压开,可以看到Tools,UnitTests,build,和一些类文件。

其中Tools里面有两个文件夹,一个是Test Client,Test Server,如果你没有可访问的服务器的话这两个文件加可以做本地测试,前提是你必须在本地装服务器,而后将Test Server运行。

3、关于如何将CocoaXMl引入到你的项目里面,这个有点麻烦,一直我想将build里面的框架引入,但报错很多,其实有一种最简单我办法,就 是首先你打开xmlRPc.xcodeProj文件,带开项目以后,将项目Classes下面的文件全部复制到你的项目,这个时候运行你的项目,会发现出 现错误,不过没关系,直接将出错的地方删除,而后运行,发现好了吧,接下来就是如何使用这个框架了,使用非常简单。

4、使用Cocoa XML-RPC

  1. //创建一个url地址  
  2.  NSURL *URL = [NSURL URLWithString: @"localhost:8080 "];    
  3.  //创建一个请求,这个类相当于sdk里面的NSURLRequest  
  4.  XMLRPCRequest *request = [[XMLRPCRequest alloc] initWithURL: URL];  
  5.  //创建一个连接服务器的类,和sdk里面NSURLConnection,它其实是对这个类进行了封装你可以看它源代码  
  6.  XMLRPCConnectionManager *manager = [XMLRPCConnectionManager sharedManager];  
  7.  //将你所要传递的参数封装到一个数组里面  
  8.  NSArray *uAndP=[NSArray arrayWithObjects:firstName,lastName,nil];  
  9. //设置UserAgent  
  10. [request setUserAgent:@"The Incutio XML-RPC PHP Library"];  
  11. //设置你将数据传送到服务器以后所要调用的方法  
  12. [request setMethod:@"IXR.login" withParameters:uAndP];  
  13. //打印出来可以看到你所要给服务器发送的数据,这个时候它已经自动的封装成为一个xml格式了  
  14. NSLog(@"Request body: %@", [request body]);  
  15. //发送请求,这里有个代理,你需要实现XMLRPCConnectionDelegate  
  16. [manager spawnConnectionWithXMLRPCRequest: request delegate: self];  
  17. [request release]; 

下面是实现代理类的方法:

代理类当中可以得到服务器的各种信息

  1. //出错信息  
  2.  
  3. -(void) request:(XMLRPCRequest *)request didFailWithError:(id)error{  
  4. NSLog(@"%@",error);  
  5. }  
  6. //得到服务器返回的数据  
  7. -(void) request:(XMLRPCRequest *)request didReceiveResponse:(XMLRPCResponse *)response{  
  8. //打印出来看下  
  9. NSLog(@"%@",[response body]);  
  10. }  
  11. -(BOOL) request:(XMLRPCRequest *)request canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace*)protectionSpace{  
  12. return YES;  
  13. }  
  14. -(void) request:(XMLRPCRequest *)request didCancelAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge{  
  15. }  
  16. -(void) request:(XMLRPCRequest *)request didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge*)challenge{  
  17. }
  评论这张
 
阅读(947)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018