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