如何用IOS调用WebService(SOAP接口)

ios调用webservice实例代码 要调用webservice需完成如下两步: (1)写一个调用webservice的类webservice(代码中有两个,一个是使用NSURLConnection写的类,还有一个是ASIHttpRequest写的webservice调用类) a.同步调用 b.异步调用 c.返回数据的处理 soap调用返回的数据经常放在:XXX中,在webservice调用中已经直接提取出来了,提取出来的内容还是一个xml,这段内容的处理,单独写在xml解析类里面 (2)对webservice返回的xml解析,代码中写了一个解析类 a.读取XXX的内容 b.遍历xml的所有内容返回数组 立即下载

方法一:使用WSDL2ObjC工具,将接口转成OC类。

1.在浏览器中输入webService接口地址(Safari不可用,我用的是Firefox),如:http://xxx.xxx.asmx, 地址后面添加上.wsdl成http://xxx.xxx.asmx.wsdl打开。

2.将页面另存为wsdl文件,保存的时候后缀加上.wsdl,保存成如xxxxService.asmx.xml.wsdl。

3.使用WSDL2ObjC工具将wsdl文件转成OC类。

4.将生成的OC类的全部文件导入到项目中。然后就可以调用了。现在没有写Demo,我就贴一部分调用代码,以后有机会传个Demo上来。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
- (NSString *)skHkshListOfpagenow2:(NSInteger)aPagenow pagesize:(NSInteger)aPagesize {
    
   MURPXzshServiceSoapBinding *binding = [[MURPXzshServiceSoapBinding alloc]initWithAddress:[NSString stringWithFormat:@ "%@%@" , self.jjjj, XZSH_SERVICE]]; //接口地址
   binding.logXMLInOut = YES; //可以直接copy
   MURPXzshService_HkshList *parm = [[MURPXzshService_HkshList alloc] init]; //接口中方法初始化
   parm.xxxx = [umcid stringValue]; //接口中方法传参数
   parm.pagenow = [NSNumber numberWithInteger:aPagenow]; //接口中方法传参数
   parm.pagesize = [NSNumber numberWithInteger:aPagesize]; //接口中方法传参数
   MURPXzshServiceSoapBindingResponse *resp = [binding HkshListUsingParameters:parm]; //调用方法
    
   //下面是返回值
   for (id mine in resp.bodyParts) {
    
     if ([mine isKindOfClass:[MURPXzshService_HkshListResponse class ]]) {
        
       NSString *resultStr = [mine HkshListResult];
        
       return resultStr;
     }
   }
   return nil;
}

 注意:上面我的webService名字是MURPXzshService,Soap是MURPXzshServiceSoapBinding,调用的方法是HkshList。

方法二:直接通过网络请求调用,解析XML的方法。

不说了,先上代码:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
- ( void )viewDidAppear:(BOOL)animated {
    
   [ super viewDidAppear:animated];
    
   //假如在这开始请求
   NSString *webServiceBodyStr = [NSString stringWithFormat:
                   @ "<Jsjy_yjy xmlns=\"http://murpcn.com/murpwebservice/\">"
                   "<xxx>34192</xxx>"
                   "<pagenow>1</pagenow>"
                   "<pagesize>20</pagesize>"
                   "</Jsjy_yjy>" ]; //这里是参数
   NSString *webServiceStr = [NSString stringWithFormat:
                 @ "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n"
                 "<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">\n"
                 "<soap:Body>\n"
                 "%@\n"
                 "</soap:Body>\n"
                 "</soap:Envelope>" ,
                 webServiceBodyStr]; //webService头
    
   NSString *SOAPActionStr = [NSString stringWithFormat:@ "http://xxx.com/murpwebservice/%@" , @ "Jsjy_yjy" ];//SOAPAction
    
   NSURL *url = [NSURL URLWithString:@ "http://xxxx/key/MurpjsjyService.asmx" ];
   NSMutableURLRequest *theRequest = [NSMutableURLRequest requestWithURL:url];
   NSString *msgLength = [NSString stringWithFormat:@ "%ld" , webServiceStr.length];
   [theRequest addValue:@ "text/xml; charset=utf-8" forHTTPHeaderField:@ "Content-type" ];
   [theRequest addValue:SOAPActionStr forHTTPHeaderField:@ "SOAPAction" ];
   [theRequest addValue:msgLength forHTTPHeaderField:@ "Content-Length" ];
   [theRequest setHTTPMethod:@ "POST" ];
   [theRequest setHTTPBody:[webServiceStr dataUsingEncoding:NSUTF8StringEncoding]];
   NSURLConnection *theConn = [[NSURLConnection alloc] initWithRequest:theRequest delegate:self];
   if (theConn) {
      
     NSLog(@ "8888哈哈哈笑" );
   } else {
     NSLog(@ "5555你给我哭" );
   }
}
  //接收到数据的代理
 
- ( void )connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    
    
}
  
- ( void )connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    
   NSString *str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
   NSLog(@ "%@" , str); //得到想要的XML字符串然后解析
    
   //系统自带的
   NSXMLParser *par = [[NSXMLParser alloc] initWithData:[str dataUsingEncoding:NSUTF8StringEncoding]];
   [par setDelegate:self]; //设置NSXMLParser对象的解析方法代理
   [par parse]; //调用代理解析NSXMLParser对象,看解析是否成功
}
//解析XML
 
#pragma mark xmlparser
//step 1 :准备解析
- ( void )parserDidStartDocument:(NSXMLParser *)parser{
    
    
}
//step 2:准备解析节点
- ( void )parser:(NSXMLParser *)parser didStartElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName attributes:(NSDictionary *)attributeDict{
   NSLog(@ "%@" , NSStringFromSelector(_cmd) );
}
//step 3:获取首尾节点间内容
- ( void )parser:(NSXMLParser *)parser foundCharacters:(NSString *)string{
   NSLog(@ "%@" , string);
}
  
//step 4 :解析完当前节点
- ( void )parser:(NSXMLParser *)parser didEndElement:(NSString *)elementName namespaceURI:(NSString *)namespaceURI qualifiedName:(NSString *)qName{
   NSLog(@ "%@" ,NSStringFromSelector(_cmd) );
}
  
//step 5;解析结束
- ( void )parserDidEndDocument:(NSXMLParser *)parser{
    
}
//获取cdata块数据
- ( void )parser:(NSXMLParser *)parser foundCDATA:(NSData *)CDATABlock{
    
}

以上内容就是用IOS调用WebService(SOAP接口)的方式

iOS开发网络篇之Web Service和XML数据解析 在iPhone和后台系统的通信中,使用Web Service获取服务器数据上最常见的一种形式。 而在Web Service通信中,数据交换格式通常上使用XML数据,XML数据也是软件开发中普遍存在的一种格式, 因此XML解析也就成为项目开发中必须掌握的一些基本技能。 本文提供一个XML数据解析类SimpleXMLParser, 该类的特点上将XML数据解析成数据库记录形式,数据解析后保存在NSArray中, 其中数组的每个元素对应一条数据库记录,每条记录则是由数据库字段和值组成的NSDictionary。 立即下载

相关推荐

ios开发实例WebService

移动开发ios实例WebService,很不错的实例demo

<iOS>网络编程(二)SOAP, WSDL, Web Service

上篇文章讲到了,使用网上一个工具WSDL2ObjC.app来把已有的 wsdl转化为ios可使用的代码, 然后通过这部分代码进行soap的请求与获取响应。 但是上面这种方式的劣势也不言自明, 所以下面将用最原始的方式来做同样的事情。 这里首先需要感谢的提供这个网站供使用的网址:http://www.ripedevelopment.com/webservices/LocalTime.asmx

Jacky Shin的专栏 6977

ios-使用iOS原生NSURLSession简单封装WebService请求.zip

最近项目中刚好用到这个请求,就写下来了,方便日后使用,请求没什么展示性的就不传图了

iOS --调用webservice接口

 其实小兵今天写这个东西,主要是为了以后的小伙伴遇到调用WebService接口,主要介绍了如何用IOS调用WebService(SOAP接口),需要的朋友可以参考下,在一次项目开发过程中,用到IOS调用WebService接口,所以抽个空把这方面的内容给大家整理出来,分享给大家。 Web Service基本概念 Web Service也叫XML Web Service WebS

鬼不觉的博客 2830

详解iOS平台调用后台接口的正确姿势

主要介绍了详解iOS平台调用后台接口的正确姿势,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

基于大模型的肾结石诊疗全流程风险预测与方案制定研究报告

目录一、引言1.1 研究背景与意义1.2 国内外研究现状1.3 研究目标与内容二、大模型技术原理与应用概述2.1 大模型的基本原理2.2 大模型在医疗领域的应用进展2.3 适用于肾结石预测的大模型选择与依据三、术前风险预测与准备3.1 患者身体状况评估3.2 结石情况分析3.3 术前准备方案制定四、术中风险预测与应对4.1 出血风险预测与处理4.2 脏器损伤风险预测与预防4.3 实时监测与决策支持五、术后恢复预测与护理5.1 恢复时间预测5.2 护理要点与措施5.3 并发症预防与处理六、并发症风险预测与管理

嵌入式毕设/课设资料清单(速查手册·文档模板·题库,持续更新)→ 见最新文章 1147

iOS调用WebService(SOAP接口)

首先有几点说在前面 一般,在请求URL的后面带有WSDL字样的需要调用WebService URL样式例子:http://ip:port/navigable/webservice/loginSerice?wsdl或者.wsdl wsdl (Web Services Description Language)网络服务描述语言 调用WebService默认使用POST请求 soap字符串使用常见的AFN

Immanito 8614

Zabbix 简介、优缺点、基础原理

(8条消息) Zabbix 的基础概念、原理和架构_Lee木木的博客-优快云博客_zabbix架构类型Zabbix 的基础概念、原理和架构_Lee木木的博客-优快云博客_zabbix架构类型 --------------------------------------------------------------------------------------------------------------------------- 一、Zabbix 简介 Zabbix是由A...

weixin_50196615的博客 2036

iOS:调用 Web services 接口

    使用AFNetworking 调用 Web services 接口:   + (void)POST:(NSString *)url soapBody:(NSString *)soapBody success:(void (^)(id responseObject))success failure:(void(^)(NSError *error))failure { ...

zhenhuiwan的博客 1678

思科路由器重分发(静态路由+OSPF动态路由+RIP动态路由)

思科路由器重分发(静态路由+OSPF动态路由+RIP动态路由)

2301_81256766的博客 1255

Agilent N5230A矢量网络分析仪在射频器件S参数测试中的关键操作指南

本文详细介绍了Agilent N5230A矢量网络分析仪在射频器件S参数测试中的关键操作流程与技巧。内容涵盖从开机预热、校准(SOLT/ECal)、参数设置(频率、点数、功率、IFBW)到连接测量、数据保存分析的全过程,并分享了夹具去嵌入、时域分析等进阶功能与常见问题避坑指南,旨在帮助工程师获得精准可靠的散射参数测试结果。

kotlin6android的博客 399

iOS开发中的Web Service

1. Web Service(1). Web Service概述Web Service技术通过Web协议提供服务,保证不同平台的应用服务可以相互操作,为客户端程序提供不同的服务.(2). Web Service实现方案目前,Web Service的实现方案主流的有以下3种: REST SOAP XML-RPC (3). 三种方案的比较 XML-RPC和SOAP都是比较复杂的技术,XML-PRC为SO

863

【Windows Server 2019】发布服务器 | 远程桌面服务的安装与配置 Ⅰ——理论,实验拓扑和安装基于RemoteAPP的RDS

博客介绍了Windows Server中远程桌面服务的理论,实验拓扑以及基于RemoteAPP的RDS安装。博文介绍了如何在Windows Server上部署发布服务器。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 6128

iOS webservice接口soap协议调用遇到的问题

  这是第一次调webservice的接口,并且后台没太做过移动端的接口,所以遇到了很多让人崩溃的困难。吃一堑长一智,所以这种时候懒得写博客的我就要趁着这股热乎劲把这次的过程记录下来啦~   首先要做的就是,在你的post方法里加上这一段: //设置路径URL NSURL * pathUrl = [NSURL URLWithString:url]; NSMutableU...

weixin_30323961的博客 192

# YOLOv11改进系列 | 引入仓库自研C3k2_EIEM模块,Sobel边缘分支增强检测细节表达

文章摘要: YOLOv11-seg改进中提出的C3k2_EIEM模块通过引入边缘信息增强机制,显著提升了模型对轮廓和纹理的感知能力。该模块在保持原有C3k2结构的基础上,创新性地结合了Sobel边缘检测分支与常规卷积分支的双路特征融合。核心改进包括:(1)固定Sobel算子提供稳定的梯度响应;(2)并行处理边缘与纹理特征;(3)通过1x1卷积实现特征融合。实验显示,改进后模型参数量增加14.16%,计算量提升12.5%,但显著增强了在复杂边界场景下的分割精度。这种设计特别适用于需要精细轮廓识别的任务,如商品

qq_44224801的博客 95

【33】软考软件设计师——算法题(二):贪心法与回溯法深度精讲|第4题进阶满分攻略

本文是《软件设计师·50讲通关|从零基础到工程师职称》专栏第33篇,承接第32篇分治法与动态规划,聚焦**下午第4题算法大题进阶核心**,详解贪心法与回溯法两大高频难点算法。全文超4000字深度拆解贪心法核心原理、贪心选择性质、局部最优推全局最优的底层逻辑,厘清贪心算法适用边界与经典误区;深挖回溯法深度优先遍历思想、递归回溯三步流程、可行性剪枝与最优性剪枝两大核心技巧;全覆盖活动选择、零钱兑换、01背包贪心禁区、八皇后、全排列等软考必考经典题型;配套标准化算法框架代码、考场填空模板、剪枝优化实操案例

专注于人工智能、软件开发、工控自动化、工厂数字化及智能化等领域,希望和大家共同进步! 438

iOS调用WebService(SOAP接口)的方法

最近开发,用到iOS调用webService接口,之前没搞过,有点麻烦,搞了很久才搞定,现在自己整理了一下可用的方法,分享给大家,希望能和大家一起交流。 方法一: 使用WSDL2ObjC工具,将接口转成OC类。 1.在浏览器中输入webService接口地址(Safari不可用,我用的是Firefox),如:http://xxx.xxx.asmx, 地址后面添加上?wsdl成htt...

dbv19435的博客 252

6.8 点云相关软件——CoProcess

摘要 CoProcess是华测导航研发的三维点云全流程处理平台,支持海量数据浏览、编辑及多类型成果输出,适配地形测绘、道路建设等行业需求。软件采用模块化设计,包含基础功能(数据导入、分类、建模等)和行业定制模块(地形、道路、矿山等),支持多格式数据交互与自动化处理,显著提升作业效率。相比Lidar360,CoProcess操作更简便、性价比更高;相比开源工具CloudCompare,其行业适配性与专业功能更优。2025版本优化了数据处理性能与智能算法,需授权激活高级功能,适合商业项目应用。

qq625924821的博客 247

ios 进阶 -- 调用webservice接口(soap协议)的方法

调用webservice接口(soap协议)的方法

嵌入式 4447

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

iOS下WebService接口调用与解析-一、Soap对象的封装

封装Soap对象Soap对象是对请求体的简单封装,免去重复而又容易出错的拼接工作。

dapan的专栏 626

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

IOS 对 .Net WebService 的调用 和上传文件

原理 根据 WebService 提供的 请求示例进行编写!   不多说 直接放代码 下面是关键的代码: #define my_web_address @"http://192.168.1.133/" #define my_web_service @"CatWebService/CatUserService.asmx" #define my_web_na

li6185377的专栏 9685

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

第三十六篇、webService

在很多的情况下,我们会常常遇到webservive写的接口,往往这种情况下,我们就需要拼接一段报文去与服务器对接首先要明白webService的工作原理,,,(http://www.cnblogs.com/Jessy/p/3528341.html) //假如在这开始请求 NSString *webServiceBodyStr = [NSString stringWithFormat...

weixin_34392906的博客 100

IOS 访问java提供的webservice接口,心魔之使

ios调用java提供的webservice接口,报错:Unmarshalling Error: unexpected element (uri:"http://*****/", local:"**Params"). Expected elements are <{}**Params>,<{}**Params>,<{}**Params>

l390450610的博客 2334

关于iOS调用SOAP协议的WebServices接口

在我们做项目的时候,往往移动客户端是现有平台的一个扩展,因此客户端实现往受限于服务采用的技术。那么目前大多数在一个新项目开始的时候,可能会考虑如果要考虑移动客户端的话会提供接口,但是,有些时候服务端已经有接口,而且这个接口可能不仅仅是提供给移动平台使用的,比如它的实现采用的是SOAP协议的WebServices实现。那么这个时候iOS端应该要如何去做呢?    //1. 创建URL     ...

buring_GG的专栏 323
上一篇: xcode8 cocoapods 执行 pod spec lint 报错
下一篇: ApplicationLoader登录失败
「已注销」
博客等级 码龄11年 10粉丝 12原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值