成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

iPhone開發技巧之網絡Web服務

移動開發 iOS
本文介紹的是iPhone開發技巧之網絡Web服務,詳細的介紹了iphone開發應用中網絡web服務,我們來看內容。

iPhone開發技巧之網絡Web服務是本文要介紹的內容,說到XML不得不提WEB應用中最常見的幾種通訊規范:SOAP,XML-RPC,REST,WSDL,JSON等,他們都是基于XML協定的。

在這里介紹幾種處理web應用中可以利用的程序庫:現在云計算技術很火,無論是類似 Google App Engine 的 PAAS 還是 Amazon EC2 的 IAAS 服務或者是類似 Twitter 的 SAAS。不可避免的都需要與 XML 打交道。所以掌握了這個標準,開發網絡應用就不怕了。

關于這些協議的具體意義這里就不詳述了,可查閱相關文檔。這里只介紹一些封裝好的類庫,以便于開發。

WSDL2ObjC

WSDL2ObjC用來處理SOAP類型的web服務。同樣也是基于libxml2的Objective-C類庫。使用的時候除了libxml2的設定以外,還要添加 CFNetwork.framework 到工程中。

一個簡單的例子如下所示:

  1.  - (IBAction)pressedRequestButton:(id)sender {  
  2.         FriendsBinding *bFriends = [[FriendsService FriendsBinding] retain];  
  3.         bFriends.logXMLInOut = YES;  
  4.         bFriends.authUsername = u.text;  
  5.         bFriends.authPassword = p.text;  
  6.         types_getFavoriteColorRequestType *cRequest = [[types_getFavoriteColorRequestType new] autorelease];  
  7.         cRequest.friend = @"Johnny";  
  8.         [bFriends getFavoriteColorAsyncUsingRequest:cRequest delegate:self];  
  9. }  
  10.  
  11. - (void) operation:(FriendsBindingOperation *)operation completedWithResponse:(FriendsBindingResponse *)response  
  12. {  
  13.         NSArray *responseresponseHeaders = response.headers;  
  14.         NSArray *responseresponseBodyParts = response.bodyParts;  
  15.  
  16.         for(id header in responseHeaders) {  
  17.                 // here do what you want with the headers, if there's anything of value in them  
  18.         }  
  19.  
  20.         for(id bodyPart in responseBodyParts) {  
  21.                 /****  
  22.                  * SOAP Fault Error  
  23.                  ****/  
  24.                 if ([bodyPart isKindOfClass:[SOAPFault class]]) {  
  25.                         // You can get the error like this:  
  26.                         tV.text = ((SOAPFault *)bodyPart).simpleFaultString;  
  27.                         continue;  
  28.                 }  
  29.  
  30.                 /****  
  31.                  * Get Favorite Color  
  32.                  ****/  
  33.                 if([bodyPart isKindOfClass:[types_getFavoriteColorResponseType class]]) {  
  34.                         types_getFavoriteColorResponseType *body = (types_getFavoriteColorResponseType*)bodyPart;  
  35.                         // Now you can extract the color from the response  
  36.                         q.text = body.color;  
  37.                         continue;  
  38.                 }  
  39. // ...  

json-framework

json-framework 是一個用 Objective-C 解析 JSON 的程序 Framework。下載后安裝到 ~/Library/ 下。然后啟動 XCode,編輯項目的設定,如下圖:

圖片地址:http://www.yifeiyang.net/images/iphone/e38394e382afe38381e383a3-1.png

編譯設定中,雙擊「結構 > 添加SDK」添加下面的sdk。

$HOME/Library/SDKs/JSON/$(PLATFORM_NAME).sdk同樣在「鏈接 > 其他的鏈接標記」中添加如下的值。

-ObjC -ljson最后,在代碼中添加 #import <JSON/JSON.h> 就可以使用了。使用的例子如下所示:

  1. NSString *urlString =  
  2.         @"http://twitter.com/statuses/user_timeline/tomute.json";  
  3. NSURL *url = [NSURL URLWithString:urlString];  
  4. NSString *jsonString = [NSString stringWithContentsOfURL:url  
  5.                                  encoding:NSUTF8StringEncoding  
  6.                                  error:nil];  
  7.  
  8. NSArray *jsonArray = [jsonString JSONValue];  
  9. for (NSDictionary *dic in jsonArray) {  
  10.     // 打印信息  
  11.     NSLog([dic objectForKey:@"text"]);  
  12.     NSLog([dic objectForKey:@"created_at"]);  

需要注意的是,JSONValue解析后的返回值是 NSDictionary 或者是 NSArray ,所以像下面一樣用id來表示返回的類型比較好。

上面的例子是取得Twitter信息的,url換為下面的后,又可以取得Flickr的照片了

http://api.flickr.com/services/rest/?method=flickr.photos.search&

api_key=@"APIKEY"&tags=@"Trip"&per_page=10&format=json&nojsoncallback=1

另外還有 TouchJSON,具體使用的方法都差不多,這里就不在敘述了。

CocoaREST

CocoaREST是一個用來處理RESTful的類庫。如果你的程序想要處理Twitter,那么就可以用到它。

一個簡單的例子如下所示:

  1. - (void) awakeFromNib {  
  2.     // inside a header file, declare manager as an instance variable  
  3.     SDTwitterManager *manager;  
  4.  
  5.     // create out manager, retaining it as we want it to stick around  
  6.     manager = [[SDTwitterManager manager] retain];  
  7.     manager.successSelector = @selector(twitterManager:resultsReadyForTask:);  
  8.     manager.failSelector = @selector(twitterManager:failedForTask:);  
  9.     manager.delegate = self;  
  10.  
  11.     // this is a must for certain API calls which require authentication  
  12.     // change them to real login values or the tasks will fail  
  13.     manager.username = @"USERNAME";  
  14.     manager.password = @"PASSWORD";  
  15.  
  16.     // 3 tasks can be run simultaneously  
  17.     manager.maxConcurrentTasks = 3;  
  18.  
  19.     // create and run a basic task  
  20.     SDTwitterTask *mentionsTask = [SDTwitterTask taskWithManager:manager];  
  21.     mentionsTask.type = SDTwitterTaskGetPersonalTimeline;  
  22.     mentionsTask.count = 3;  
  23.     mentionsTask.page = 10;  
  24.     [mentionsTask run];  
  25. }  
  26.  
  27. - (void) twitterManager:(SDTwitterManager*)manager resultsReadyForTask:(SDTwitterTask*)task {  
  28.     NSLog(@"%@", task.results);  
  29. }  
  30.  
  31. - (void) twitterManager:(SDTwitterManager*)manager failedForTask:(SDTwitterTask*)task {  
  32.     NSLog(@"%@", task.error);  

除此之外,當然還有很多的web服務應用,這里不能一一列舉使用的方法,在以后會做一些更加詳細的介紹。

小結:iPhone開發技巧之網絡Web服務的內容介紹完了,希望本文對你有所幫助!

責任編輯:zhaolei 來源: 互聯網
相關推薦

2011-07-19 09:46:38

2011-07-19 09:58:36

2011-08-08 14:57:46

iPhone Autoreleas Property

2011-08-10 15:48:10

iPhone網絡

2011-08-02 16:28:40

iPhone Web開發 事件

2015-06-04 10:44:59

WebAPP開發技巧

2015-06-17 10:28:10

WebAPP開發技巧

2011-10-18 13:58:32

高性能web

2011-08-15 11:31:27

iPhone開發日志

2011-08-10 10:10:21

iPhoneUIPopoverCo

2011-08-01 18:27:58

iPhone開發 UISearchBa

2012-04-26 13:26:58

iPhone應用技巧

2009-07-31 09:32:12

ASP.NET網絡硬盤開發

2013-09-10 16:16:19

移動網站性能優化移動web

2012-05-17 11:45:12

iPhone

2011-04-07 13:39:24

WebHTTP

2011-08-08 13:57:19

iPhone開發 打包 DEB

2011-08-11 10:03:43

iPhonecocoaNSRunLoop

2011-03-17 13:38:37

2011-07-19 18:11:09

iPhone 開發
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本精品视频一区二区三区四区 | 四色成人av永久网址 | 九九色综合| 国产区精品在线观看 | 日韩中文字幕免费 | 久久免费高清 | 国产在线播 | 97色在线观看免费视频 | 一级黄色片一级黄色片 | 国产成人精品免费视频大全最热 | 亚洲精品一区av在线播放 | 欧美日韩亚 | 一区二区三区av | 一区二区三区在线看 | 免费在线性爱视频 | 国产免费一区二区三区免费视频 | 久久亚洲综合 | 91小视频在线 | 精品一级 | 色接久久 | 中文字幕亚洲精品 | 97精品国产 | 亚洲一区二区视频在线播放 | 欧美三区视频 | www.亚洲视频 | 日韩和的一区二在线 | 日韩中文字幕免费在线 | 美女久久 | 一区二区三区四区在线视频 | 日本不卡高字幕在线2019 | 国产激情网| 极品电影院 | 精品国产乱码久久久久久影片 | 久久精品一级 | 亚洲成人免费观看 | 在线播放一区二区三区 | 一区二区三区精品在线 | 九九热在线免费视频 | 色婷婷亚洲一区二区三区 | 欧美一级片在线观看 | 欧美精品一区二区三区在线 |