黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 如何寫Web Service的IOS應用

如何寫Web Service的IOS應用

更新時間:2020-09-23 17:34:16 來源:動力節(jié)點 瀏覽1070次

對于IOS大家都不陌生,是由蘋果公司開發(fā)的一款優(yōu)秀的移動操作系統(tǒng),考慮到我們最近正在學習Web Service相關知識,那么如何寫Web Service的IOS應用呢?

下面我們?yōu)榇蠹乙徊揭徊絹碚故網eb Service的IOS應用的具體步驟:

一、 前期準備工作:

下載需要使用的第三方庫:JSON,ASIHTTPRequest和MBProgressHUD

接下來就開始創(chuàng)建項目并導入:

1.開啟Xcode創(chuàng)建一個項目,項目類型選擇Single View Application。

2.創(chuàng)建三個Group,并導入上述三個庫。

JSON:將JSON\Classes目錄的文件托入剛才創(chuàng)建的JSON GROUP。

ASIHTTPRequest:將ASIHTTPRequest\Classes目錄的所有文件拖入創(chuàng)建的ASIHTTPRequest GROUP(注意,只要當前目錄的文件,CloudFiles之類的目錄不需要)

ASIHTTPRequest\External\Reachability這里的文件也要加進來

MBProgressHUD:將MBProgressHUD.m和MBProgressHUD.h拖入MBProgressHUD GROUP

以上三個操作,拖入的時候,記得勾選Copy items into destination group’s folder (if needed)選項,意思是把目錄復制到你的項目中,而不是只引用。

3.導入一些必要的frameworks:點擊左側導航欄中你的項目->選中target->再選擇build phases欄0->Link Binary with Libraries。點擊+按鈕,搜索CFNetwork.framework and SystemConfiguration.framework,MobileCoreServices.framework, and libz.1.2.3.dylib四個庫。

以上三個大步驟完成后,點擊編譯。完成第一個階段。

二、實現Interface

創(chuàng)建UI:1.label

2.textfield

3.textview

三、與WebService交互

我們的Web Service需要三個參數:

rw_app_id: 應用的唯一標識號. If you’ve been following along with the previous tutorial, there should be only one entry so far, App ID #1.

code: The code to attempt to redeem. This should be a string that’s entered by the user.

device_id: The device ID that is attempting to redeem this code. We can get this with an easy API call

我們需要使用POST機制請求WebService。ASIHTTPRequest將使這一過程變得很便捷。

1.創(chuàng)建一個ASIFormDataRequest實例與URL

2.使用setPostValue方法指定各個參數

3.設置viewcontroller為request的delegate,之后調用startAsynchronous來發(fā)起異步請求

4.當請求完畢后,requestFinished或者requestFailed會被回調

5.requestFinished無論webservice相應一個錯誤的代碼,或者正確響應,都會被調用,所以在這個函數里要檢查請求成功或者失敗

6.如果一切順利,再解析收到的JSON數據

- (BOOL)textFieldShouldReturn:(UITextField *)textField {

NSLog(@"Want to redeem: %@", textField.text);

// Get device unique ID

UIDevice *device = [UIDevice currentDevice];

NSString *uniqueId= [device uniqueIdentifier];

// Start request

NSString *code = textField.text;

NSURL *url = [NSURL URLWithString:@"http://www.wildfables.com/promos/"];

ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];

[request setPostValue:@"1" forKey:@"rw_app_id"];

[request setPostValue:code forKey:@"code"];

[request setPostValue:uniqueId forKey:@"device_id"];

[request setDelegate:self];

[request startAsynchronous];

// Hide keyword

[textField resignFirstResponder];

// Clear text field

textView.text = @"";

//狀態(tài)指示器

MBProgressHUD *hud = [MBProgressHUD showHUDAddedTo:self.view animated:YES];

hud.labelText = @"Redeeming code...";

return TRUE;

}

/*請求完成后回調*/

- (void)requestFinished:(ASIHTTPRequest *)request

{

[MBProgressHUD hideHUDForView:self.view animated:YES];

if (request.responseStatusCode == 400) {

textView.text = @"Invalid code";

} else if (request.responseStatusCode == 403) {

textView.text = @"Code already used";

} else if (request.responseStatusCode == 200) {

NSString *responseString = [request responseString];

NSDictionary *responseDict = [responseString JSONValue];

NSString *unlockCode = [responseDict objectForKey:@"unlock_code"];

if ([unlockCode compare:@"com.razeware.test.unlock.cake"] == NSOrderedSame) {

textView.text = @"The cake is a lie!";

} else {

textView.text = [NSString stringWithFormat:@"Received unexpected unlock code: %@", unlockCode];

}

} else {

textView.text = @"Unexpected error";

}

}

/*請求失敗后回調*/

- (void)requestFailed:(ASIHTTPRequest *)request

{

[MBProgressHUD hideHUDForView:self.view animated:YES];

NSError *error = [request error];

textView.text = error.localizedDescription;

}

為了讓用戶感受到,在請求數據的時候,程序在運行,而不是假死,所以要添加狀態(tài)指示器。

三個步驟

// Add at the top of the file#import "MBProgressHUD.h"

// Add right before return TRUE in textFieldShouldReturn

MBProgressHUD *hud =[MBProgressHUD showHUDAddedTo:self.view animated:YES];

hud.labelText =@"Redeeming code...";

// Add at start of requestFinished AND requestFailed

[MBProgressHUD hideHUDForView:self.view animated:YES];

編譯運行,大功告成。一個使用Web Service的IOS應用就編寫成功啦,當然真正的一款合格的IOS應用還需要精心雕琢,查漏補缺。為了能夠勝任這些任務,建議小伙伴們觀看本站的Java教程,學習更多的優(yōu)質知識來豐富自己,提升自己的編程水平。


提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 无码一区二区三区视频 | 亚洲欧美日韩中文v在线 | 日本人真淫视频一区二区三区 | 人人看人人鲁狠狠高清 | 福利在线网址 | 日日摸日日添夜夜爽97 | 亚洲色图在线观看 | 日韩视频在线观看免费 | 成人网免费视频 | 欧美日批视频 | 午夜国产视频 | 免费在线观看黄网站 | 一级黄色视 | 国产成人v片视频在线观看 国产成人v视频在线观看 | 天天干天天射天天操 | 亚洲黄视频在线观看 | 欧美日韩亚洲国产精品 | 人人干干人人 | 香蕉成人国产精品免费看网站 | 日本三级全黄三级三级三级口周 | 色妇视频 | 伊人久久大香线蕉免费视频 | 毛片在线全部免费观看 | 特级深夜a级毛片免费观看 特级中国aaa毛片 | 中文字幕日韩视频 | 男女做羞羞的视频 | 一品毛片 | 美尻在线 | 国产亚洲sss在线观看 | 婷婷在线视频观看 | 中国日韩欧美中文日韩欧美色 | 激情久久久久久久久久久 | 男人吃奶吃奶啪啪gif | 国产特黄1级毛片 | 青青操国产 | 免费av片在线观看网站 | 国产无遮挡床戏视频免费 | 亚洲精品国精品久久99热 | 精品视频免费观看 | 韩国伦理片免费观看 | 黄色影视网站 |