iPhone开发中使用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: @"localhost:8080 "];
- //创建一个请求,这个类相当于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{
- }
小结:详解iPhone开发中使用Cocoa XML RPC Framework的内容介绍完了,希望通过本文的学习能对你有所帮助!