首页 > 网站 > 建站经验 > 正文

制作iPhone的SO,AP应用

2019-11-02 14:30:49
字体:
来源:转载
供稿:网友

   为 了便于理解,我先讲下soap的大体原理:我们在iPhone封装soap请求信息,发送到某个提供soap服务的服务器,如下例中我们用到的http://www.Nanonull.com/TimeService/.服 务器能接受和识别soap请求,当它接到请求,就根据客户端的请求情况调用服务器上的某个函数,并将函数返回结果封装成soap反馈信息发送给客户端.客 户端接收到soap反馈信息后,进行解析处理,以用户能理解的形式呈现给用户.整个过程就这么简单.

  好了,假设现在你已经有关于 soap的基础知识(没有也没关系,看了例子,再理解就更好理解了),下面我们开始做soap的例子.

  第一步,建一个 Hello_SOAP项目.用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中将两个输出口和一个动作连接好,这个不用手把手吧?

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

  代码

  1. - (void)getOffesetUTCTimeSOAP 2. { 3. recordResults = NO; 4.//封装soap请求消息 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. //请求发送到的路径 17. NSURL *url = [NSURL URLWithString:@"http://www.nanonull.com/TimeService/TimeService.asmx"]; 18. NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url]; 19. NSString *msgLength = [NSString stringWithFormat:@"%d", [soapMessage length]]; 20. 21. // 以下对请求信息添加属性前四句是必有的,第五句是soap信息。 22. [theRequest addValue: @"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"]; 23. [theRequest addValue: @"http://www.Nanonull.com/TimeService/getOffesetUTCTime" forHTTPHeaderField:@"SOAPAction"]; 24. 25. [theRequest addValue: msgLength forHTTPHeaderField:@"Content-Length"]; 26. [theRequest setHTTPMethod:@"POST"]; 27. [theRequest setHTTPBody: [soapMessage dataUsin

探索宇宙[www.9-39.com/html/explore/]
gEncoding:NSUTF8StringEncoding]]; 28. 29. // 请求 30. NSURLConnection *theConnection = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self]; 31. 32. // 如果连接已经建好,则初始化data 33. if( theConnection ) 34. { 35. webData = [[NSMutableData data] retain]; 36. } 37. else 38. { 39. NSLog(@"theConnection is NULL"); 40. } 41. 42. 43. }
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表