自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

無(wú)線客戶端框架設(shè)計(jì)(5):調(diào)用MobileAPI的設(shè)計(jì)(iOS篇)

移動(dòng)開發(fā) iOS
本文將為您講述如何發(fā)起網(wǎng)絡(luò)請(qǐng)求,iOS用于調(diào)用MobileAPI的第三方組件很多。我們會(huì)在后續(xù)的章節(jié),介紹Cookie的處理和時(shí)間校準(zhǔn)機(jī)制,它們都和調(diào)用MobileAPI息息相關(guān)。

這一節(jié)講如何發(fā)起網(wǎng)絡(luò)請(qǐng)求。

iOS用于調(diào)用MobileAPI的第三方組件很多,我們這里采用的是以下組件:

1)ASIHTTPRequest,用于請(qǐng)求MobileAPI:http://allseeing-i.com/ASIHTTPRequest/ 

 iOS教程之ASIHttpRequest完全攻略

2)SBJson,2.3版本,用于解析JSON:http://stig.github.com/json-framework/

由于我們?cè)贛yLib中引用了SBJson,它里面有一個(gè)Category名為NSString+SBJSON,為了能使用它,請(qǐng)?jiān)?/p>

MyLib和MyApp項(xiàng)目中的Other Linker Falgs設(shè)為-all_load。

這一節(jié)內(nèi)容非常蕪雜,我將其分為以下幾個(gè)部分:

1)將返回JSON格式的數(shù)據(jù)轉(zhuǎn)換實(shí)體類

2)網(wǎng)絡(luò)請(qǐng)求的封裝——匯總API的配置文件

3)網(wǎng)絡(luò)請(qǐng)求的封裝——RemotingService橫空出世

4)網(wǎng)絡(luò)請(qǐng)求的封裝——一些善后工作

5)數(shù)據(jù)緩存

6)自動(dòng)重試

7)自動(dòng)化實(shí)體生成器

此外,我們會(huì)在后續(xù)的章節(jié),介紹Cookie的處理和時(shí)間校準(zhǔn)機(jī)制,它們都和調(diào)用MobileAPI息息相關(guān)。

本文采取的例子是開源免費(fèi)天氣預(yù)報(bào)接口API以及全國(guó)所有地區(qū)代碼!?。▏?guó)家氣象局提供):http://mobile.51cto.com/hot-409995.htm

先給出一個(gè)ASIHTTPRequest+SBJson的例子:YoungHeart-Chapter-05.zip

關(guān)鍵代碼如下所示:

  1. - (void)loadData { 
  2.     NSURL *url = [NSURL URLWithString:@"http://www.weather.com.cn/data/sk/101010100.html"]; 
  3.     ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:url]; 
  4.     [request setDelegate:self];     
  5.     [request startAsynchronous]; 
  6.  
  7. - (void)requestFinished:(ASIHTTPRequest *)request { 
  8.     NSString *jsonStr  =[request responseString]; 
  9.      
  10.     SBJsonParser *jsonParser = [[SBJsonParser alloc] init]; 
  11.      
  12.     NSMutableDictionary *dict = [jsonParser objectWithString:jsonStr]; 
  13.     NSLog(@"%@",dict); 
  14.      
  15.     [jsonParser release]; 
  16.     id jsonValue = [jsonStr JSONValue]; 
  17.  
  18. - (void)requestFailed:(ASIHTTPRequest *)request { 
  19.     UIAlertView* alertView = [[UIAlertView alloc]initWithTitle: @"粗銼啦" message: @"Network Error" delegate: self cancelButtonTitle: @"OK" otherButtonTitles: nil]; 
  20.     [alertView show]; 
  21.     [alertView release]; 

 

責(zé)任編輯:閆佳明 來(lái)源: cnblogs
相關(guān)推薦

2013-09-03 09:35:48

無(wú)線客戶端框架設(shè)計(jì)iOS

2013-09-03 09:55:42

iOS無(wú)線客戶端框架設(shè)計(jì)

2013-09-09 10:36:14

iOS無(wú)線客戶端框架設(shè)計(jì)

2013-09-16 10:43:15

無(wú)線客戶端框架設(shè)計(jì)iOSJSON

2013-09-03 09:10:56

2013-03-14 10:12:54

視覺設(shè)計(jì)產(chǎn)品設(shè)計(jì)

2012-06-25 12:43:26

.NET框架

2011-03-07 13:50:20

2012-01-18 10:20:42

框架設(shè)計(jì)

2012-11-28 11:05:42

IBMdW

2020-07-30 10:35:32

Java反射框架設(shè)計(jì)

2023-03-31 13:31:45

2012-06-25 09:28:42

.NET可逆框架

2009-06-12 19:18:08

REST客戶端框架JavaScript

2012-02-10 10:27:54

WLANVDI

2011-07-07 13:21:56

UI設(shè)計(jì)

2009-09-16 16:09:41

NIS服務(wù)器客戶端NIS

2024-11-04 08:00:00

Netty客戶端

2014-03-10 10:22:40

JavaScriptJS弊端

2009-09-08 09:12:12

LINQ構(gòu)建框架設(shè)計(jì)
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)