iPhone開發(fā)中使用Cocoa XML RPC Framework
iPhone開發(fā)中使用Cocoa XML RPC Framework是本文要介紹的內(nèi)容,最近做一個(gè)項(xiàng)目需要和rpc_xml打交道,原來一直想解析xml啊,方法挺多,可是以xml格式向服務(wù)器發(fā)送數(shù)據(jù)使用soap確實(shí)聽麻煩,就一個(gè)boby我加“\n"就挺費(fèi)時(shí)的。幸虧有個(gè)框Cocoa XML-RPC Framework,省去了我許多麻煩,可是在使用框架時(shí)遇到了許多問題,使我非常糾結(jié),在網(wǎng)上找相關(guān)的配置卻少的可憐,弄了一天總算是知道如何使用了。
1、下載The Cocoa XML-RPC Framework ,下載地址為:
- http://github.com/eczarny/xmlrpc
2、下載以后解壓開,可以看到Tools,UnitTests,build,和一些類文件。
其中Tools里面有兩個(gè)文件夾,一個(gè)是Test Client,Test Server,如果你沒有可訪問的服務(wù)器的話這兩個(gè)文件加可以做本地測試,前提是你必須在本地裝服務(wù)器,而后將Test Server運(yùn)行。
3、關(guān)于如何將CocoaXMl引入到你的項(xiàng)目里面,這個(gè)有點(diǎn)麻煩,一直我想將build里面的框架引入,但報(bào)錯(cuò)很多,其實(shí)有一種最簡單我辦法,就是首先你打開xmlRPc.xcodeProj文件,帶開項(xiàng)目以后,將項(xiàng)目Classes下面的文件全部復(fù)制到你的項(xiàng)目,這個(gè)時(shí)候運(yùn)行你的項(xiàng)目,會發(fā)現(xiàn)出現(xiàn)錯(cuò)誤,不過沒關(guān)系,直接將出錯(cuò)的地方刪除,而后運(yùn)行,發(fā)現(xiàn)好了吧,接下來就是如何使用這個(gè)框架了,使用非常簡單。
4、使用Cocoa XML-RPC
- //創(chuàng)建一個(gè)url地址
- NSURL *URL = [NSURL URLWithString: @"localhost:8080 "];
- //創(chuàng)建一個(gè)請求,這個(gè)類相當(dāng)于sdk里面的NSURLRequest
- XMLRPCRequest *request = [[XMLRPCRequest alloc] initWithURL: URL];
- //創(chuàng)建一個(gè)連接服務(wù)器的類,和sdk里面NSURLConnection,它其實(shí)是對這個(gè)類進(jìn)行了封裝你可以看它源代碼
- XMLRPCConnectionManager *manager = [XMLRPCConnectionManager sharedManager];
- //將你所要傳遞的參數(shù)封裝到一個(gè)數(shù)組里面
- NSArray *uAndP=[NSArray arrayWithObjects:firstName,lastName,nil];
- //設(shè)置UserAgent
- [request setUserAgent:@"The Incutio XML-RPC PHP Library"];
- //設(shè)置你將數(shù)據(jù)傳送到服務(wù)器以后所要調(diào)用的方法
- [request setMethod:@"IXR.login" withParameters:uAndP];
- //打印出來可以看到你所要給服務(wù)器發(fā)送的數(shù)據(jù),這個(gè)時(shí)候它已經(jīng)自動的封裝成為一個(gè)xml格式了
- NSLog(@"Request body: %@", [request body]);
- //發(fā)送請求,這里有個(gè)代理,你需要實(shí)現(xiàn)XMLRPCConnectionDelegate
- [manager spawnConnectionWithXMLRPCRequest: request delegate: self];
- [request release];
下面是實(shí)現(xiàn)代理類的方法:
代理類當(dāng)中可以得到服務(wù)器的各種信息
- //出錯(cuò)信息
- -(void) request:(XMLRPCRequest *)request didFailWithError:(id)error{
- NSLog(@"%@",error);
- }
- //得到服務(wù)器返回的數(shù)據(jù)
- -(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{
- }
小結(jié):詳解iPhone開發(fā)中使用Cocoa XML RPC Framework的內(nèi)容介紹完了,希望通過本文的學(xué)習(xí)能對你有所幫助!