中文字幕在线一区二区在线,久久久精品免费观看国产,无码日日模日日碰夜夜爽,天堂av在线最新版在线,日韩美精品无码一本二本三本,麻豆精品三级国产国语,精品无码AⅤ片,国产区在线观看视频

      教你制作iPhone的SOAP應(yīng)用

      時(shí)間:2024-07-25 10:40:05 SOAP 我要投稿
      • 相關(guān)推薦

      教你制作iPhone的SOAP應(yīng)用

        為 了便于理解,我先講下soap的大體原理:我們?cè)趇Phone封裝soap請(qǐng)求信息,發(fā)送到某個(gè)提供soap服務(wù)的服務(wù)器,如下例中我們用到的/TimeService/.服 務(wù)器能接受和識(shí)別soap請(qǐng)求,當(dāng)它接到請(qǐng)求,就根據(jù)客戶(hù)端的請(qǐng)求情況調(diào)用服務(wù)器上的某個(gè)函數(shù),并將函數(shù)返回結(jié)果封裝成soap反饋信息發(fā)送給客戶(hù)端.客 戶(hù)端接收到soap反饋信息后,進(jìn)行解析處理,以用戶(hù)能理解的形式呈現(xiàn)給用戶(hù).整個(gè)過(guò)程就這么簡(jiǎn)單.

        好了,假設(shè)現(xiàn)在你已經(jīng)有關(guān)于 soap的基礎(chǔ)知識(shí)(沒(méi)有也沒(méi)關(guān)系,看了例子,再理解就更好理解了),下面我們開(kāi)始做soap的例子.

        第一步,建一個(gè) Hello_SOAP項(xiàng)目.用IB將Hello_SOAPViewController.xib做成如下圖的界面

        然后在Hello_SOAPViewController.h中添加如下代碼

        代碼

        1. @interface Hello_SOAPViewController : UIViewController 2. { 3. IBOutlet UITextField *nameInput; 4. IBOutlet UILabel *greeting; 5. 6. NSMutableData *webData; 7. NSMutableString *soapResults; 8. NSXMLParser *xmlParser; 9. BOOL recordResults; 10. } 11. 12. @property(nonatomic, retain) IBOutlet UITextField *nameInput; 13. @property(nonatomic, retain) IBOutlet UILabel *greeting; 14. 15. @property(nonatomic, retain) NSMutableData *webData; 16. @property(nonatomic, retain) NSMutableString *soapResults; 17. @property(nonatomic, retain) NSXMLParser *xmlParser; 18. 19. -(IBAction)buttonClick: (id) sender; 20. - (void)getOffesetUTCTimeSOAP;

        然后在Hello_SOAPViewController.xib中將兩個(gè)輸出口和一個(gè)動(dòng)作連接好,這個(gè)不用手把手吧?

        在 Hello_SOAPViewController.m文件中加入以下方法 :

        代碼

        1. - (void)getOffesetUTCTimeSOAP 2. { 3. recordResults = NO; 4.//封裝soap請(qǐng)求消息 5. NSString *soapMessage = [NSString stringWithFormat: 6. @"n" 7. "n" 8. "n" 9. "n" 10. "%@n" 11. "n" 12. "n" 13. "n",nameInput.text 14. ]; 15. NSLog(soapMessage); 16. //請(qǐng)求發(fā)送到的路徑 17. NSURL *url = [NSURL URLWithString:@"/TimeService/TimeService.asmx"]; 18. NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]; 19. NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]]; 20. 21. // 以下對(duì)請(qǐng)求信息添加屬性前四句是必有的,第五句是soap信息。 22. [theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 23. [theRequest addValue: @"/TimeService/getOffesetUTCTime" forHTTPHeaderField:@"SOAPAction"]; 24. 25. [theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"]; 26. [theRequest setHTTPMethod:@"POST"]; 27. [theRequest setHTTPBody: [soapMessage dataUsingEncoding:NSUTF8StringEncoding]]; 28. 29. // 請(qǐng)求 30. NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 31. 32. // 如果連接已經(jīng)建好,則初始化data 33. if( theConnection ) 34. { 35. webData = [[NSMutableData data] retain]; 36. } 37. else 38. { 39. NSLog(@"theConnection is NULL"); 40. } 41. 42. 43. }

        這個(gè)方法作用就是封裝soap請(qǐng)求,并向服務(wù)器發(fā)送請(qǐng)求.

        代碼有注釋.不重復(fù)講解.soap并不難,難的是沒(méi)有案例告訴我們?cè)趺窗哑渌脚_(tái)的 soap移植過(guò)來(lái),這里我給出了代碼,我相信對(duì)iphone開(kāi)發(fā)人員的話(huà)應(yīng)該能看懂了.我在下面會(huì)把此案例的源代碼附上.如果自己做不出來(lái)再看我的代碼. 如果我這樣講您覺(jué)得不夠細(xì),那說(shuō)明您的iphone開(kāi)發(fā)還不是太深入,那么您應(yīng)該用不到soap技術(shù).可以飄過(guò)了.

        下面的代碼是接收信息并解析, 顯示到用戶(hù)界面

        代碼

        1. -(void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 2. { 3. [webData setLength: 0]; 4. NSLog(@"connection: didReceiveResponse:1"); 5. } 6. -(void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 7.{ 8. [webData appendData:data]; 9. NSLog(@"connection: didReceiveData:2"); 10. 11. } 12. 13. //如果電腦沒(méi)有連接網(wǎng)絡(luò),則出現(xiàn) 此信息(不是網(wǎng)絡(luò)服務(wù)器不通) 14. -(void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 15. { 16. NSLog(@"ERROR with theConenction"); 17. [connection release]; 18. [webData release]; 19. } 20. -(void)connectionDidFinishLoading:(NSURLConnection *)connection 21. { 22. NSLog(@"3 DONE. Received Bytes: %d", [webData length]); 23. NSString *theXML = [[NSString alloc] initWithBytes: [webData mutableBytes] length:[webData length] encoding:NSUTF8StringEncoding]; 24. NSLog(theXML); 25. [theXML release]; 26. 27. //重新加蔞xmlParser 28. if( xmlParser ) 29. { 30. [xmlParser release]; 31. } 32. 33. xmlParser = [[NSXMLParser alloc] initWithData: webData]; 34. [xmlParser setDelegate: self]; 35. [xmlParser setShouldResolveExternalEntities: YES]; 36. [xmlParser parse]; 37. 38. [connection release]; 39. //[webData release]; 40. }

      【教你制作iPhone的SOAP應(yīng)用】相關(guān)文章:

      iphone 延時(shí)攝影技巧06-20

      影視制作中的鏡頭應(yīng)用嘗試08-01

      數(shù)字技術(shù)在影視制作中的應(yīng)用04-13

      雙語(yǔ)閱讀:蘋(píng)果推出iPhone X09-08

      iphone6splus攝影技巧08-19

      iphone和電腦傳文件的方法05-03

      怎么用PPT畫(huà)個(gè)iphone06-10

      iphone7plus拍照技巧08-15

      iphone7 plus攝影技巧10-12

      多媒體技術(shù)在影視制作中的應(yīng)用10-31

      主站蜘蛛池模板: 国产真实伦视频在线视频| 大伊香蕉精品视频一区| 保山市| 无码三级国产三级在线电影| 免费一级欧美大片久久网| jk制服黑色丝袜喷水视频国产| 久久综合激激的五月天| 大庆市| 最新国产美女一区二区三区| 制服无码在线第一页| 久久久一本精品99久久精品77| 河池市| 亚洲精品国产熟女久久| 日本高清一区二区三区视频| 国产盗摄老熟女视频一区二区三区 | 国产激情久久久久久熟女老人 | 国产精品美女一级在线观看| 亚洲AV无码中文AV日韩A| 日韩少妇人妻一区二区| 卓资县| 潼南县| 国产粉嫩嫩00在线正在播放| 久久精品中文字幕亚洲| 精品亚洲一区二区三区| 一区二区三区偷拍系列| 精品91精品91精品国产片| 激情内射亚洲一区二区| 镶黄旗| 南宫市| 特级毛片a级毛片在线播放www| 湛江市| 始兴县| 横峰县| 松江区| 精品一区二区三区在线视频观看| 柳州市| 国产又粗又猛又黄色呦呦| 滨州市| 开心五月婷婷丁香综合| 国产日韩亚洲一区二区| 香格里拉县|