使用Cocoa XML-RPC Framework

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

 

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

    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

  //创建一个url地址

NSURL *URL = [NSURL URLWithString: @"http://219.234.220.18/swayable/xmlrpc.php "];  

//创建一个请求,这个类相当于sdk里面的NSURLRequest

 

XMLRPCRequest *request = [[XMLRPCRequest alloc] initWithURL: URL];

//创建一个连接服务器的类,和sdk里面NSURLConnection,它其实是对这个类进行了封装你可以看它源代码

XMLRPCConnectionManager *manager = [XMLRPCConnectionManager sharedManager];

//将你所要传递的参数封装到一个数组里面

NSArray *uAndP=[NSArray arrayWithObjects:firstName,lastName,nil];

//设置UserAgent

[request setUserAgent:@"The Incutio XML-RPC PHP Library"];

//设置你将数据传送到服务器以后所要调用的方法

[request setMethod:@"IXR.login" withParameters:uAndP];

//打印出来可以看到你所要给服务器发送的数据,这个时候它已经自动的封装成为一个xml格式了

NSLog(@"Request body: %@", [request body]);

//发送请求,这里有个代理,你需要实现XMLRPCConnectionDelegate

[manager spawnConnectionWithXMLRPCRequest: request delegate: self];

 

[request release];

下面是实现代理类的方法:
代理类当中可以得到服务器的各种信息

//出错信息

-(void) request:(XMLRPCRequest *)request didFailWithError:(id)error{

NSLog(@"%@",error);

}

 

//得到服务器返回的数据

-(void) request:(XMLRPCRequest *)request didReceiveResponse:(XMLRPCResponse *)response{

//打印出来看下

NSLog(@"%@",[response body]);

}

-(BOOL) request:(XMLRPCRequest *)request canAuthenticateAgainstProtectionSpace:(NSURLProtectionSpace *)protectionSpace{

return YES;

}

 

-(void) request:(XMLRPCRequest *)request didCancelAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge{

}

-(void) request:(XMLRPCRequest *)request didReceiveAuthenticationChallenge:(NSURLAuthenticationChallenge *)challenge{

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值