通过webservice提交xml数据以及soap协议的使用

WEBService-SOAP协议 SOAP协议 0:开始: 最近需要处理老项目重构。 旧的webservice使用axis2 +springframework框架.现在需更新为 CXF+springBoot 框架。 在操作之前需要对soap协议进行简单了解 1.概念: 官方 : 简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。 理解: 用xml的形式(io/String)传输数据的一种协议。一个soap协议本身是一个xml文档,以 阅读详情

上次已经给大家分享了简单的webservice的使用,提交给服务器的数据只是简单类型的数据,这次呢换成了xml,并通过一个小例子来讲解soap协议的使用。废话就不多说了先来说下xml数据的上传
1.代码的结构没有多大的变化,只需修改一下请求头就可以了,代码如下

//封装数据,数据以byte方式传输
	  byte[] b=xml.getBytes();
	  //需要请求的连接
	  URL url=new URL("http://192.168.87.1:8080/LoginService/LoginWebService");
	  //打开连接
	  HttpURLConnection conn=(HttpURLConnection)url.openConnection();
	  //设置请求方式和消息头以及超时时间
	  conn.setRequestMethod("POST");
	  conn.setConnectTimeout(5000);
	  //设置是否允许对外输出数据
	  conn.setDoOutput(true);
	  conn.setRequestProperty("Content-Type", "text/xml;charset=UTF-8");
	  conn.setRequestProperty("Content-Length", String.valueOf(b.length));
	  //取得输出流
	  OutputStream outPut=conn.getOutputStream();
	  outPut.write(b);
	  outPut.flush();
	  outPut.close();
	  //判断请求是否成功
	  if(conn.getResponseCode()==200){
		 // Log.i();
		  return "OK";
	  }else{
		  return "Err"; 
	  }
	 
下面给大家写了点服务器端获取byte数据的代码,顺便在控制台打印xml,这个方法建议写成工具类,我这里就不这样做了
                request.setCharacterEncoding("UTF-8");
		InputStream in=request.getInputStream();
		byte[] b=new byte[1024];
		int len=0;
		int temp=0;
		while((temp=in.read())!=-1){
			b[len]=(byte)temp;
			len++;
		}
		System.out.println(new String(b,"UTF-8"));


下面是运行效果图


后面的工作就是解析xml类似的工作了

2.HTTP协议的webservice差不多了下面就是使用soap协议请求webservice了,这里就来弄个手机号码归属地的webservice吧
先打开这个链接http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx?op=getMobileCodeInfo
看一下下面的soap协议这里就是用soap1.2就可以

3.下面就根据协议的说明来换掉请求头,为了开发方便我们需要把用于请求的xml写在一个文件里,手机号码用个占位符代替
<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <getMobileCodeInfo xmlns="http://WebXml.com.cn/">
      <mobileCode>$number</mobileCode>
      <userID></userID>
    </getMobileCodeInfo>
  </soap12:Body>
</soap12:Envelope>

4.下面的工作就是替换占位符,请求该webservice
public String readSoapFile(InputStream input,String number) throws Exception{
	  byte[] b=new byte[1024];
		int len=0;
		int temp=0;
		while((temp=input.read())!=-1){
			b[len]=(byte)temp;
			len++;
	  }
	  String soapxml=new String(b);
	  //替换xml文件的占位符
	  Map<String,String> map=new HashMap<String, String>();
	  map.put("number", number);
	  return replace(soapxml, map);
  }
  public String replace(String param,Map<String,String> params) throws Exception{
	  //拼凑占位符使用正则表达式替换之
	  String result=param;
	  if(params!=null&&!params.isEmpty()){
		  //拼凑占位符
		  for(Map.Entry<String,String> entry:params.entrySet()){
			  String name="\\$"+entry.getKey();
			  Pattern p=Pattern.compile(name);
			  Matcher m=p.matcher(result);
			  if(m.find()){
				  result=m.replaceAll(entry.getValue());
			  }
		  }
	  }
	  return result;
  }

开始请求webservice并得到返回的xml字符串
public String soapService(InputStream input,String number) throws Exception{
	  String str="";
	   String soap=readSoapFile(input,number);
	  //封装数据,数据以byte方式传输
	  byte[] b=soap.getBytes();
	  //需要请求的连接
	  URL url=new URL("http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx");
	  //打开连接
	  HttpURLConnection conn=(HttpURLConnection)url.openConnection();
	  //设置请求方式和消息头以及超时时间
	  conn.setRequestMethod("POST");
	  conn.setConnectTimeout(5000);
	  //设置是否允许对外输出数据
	  conn.setDoOutput(true);
	  conn.setRequestProperty("Content-Type", "application/soap+xml; charset=utf-8");
	  conn.setRequestProperty("Content-Length", String.valueOf(b.length));
	  //取得输出流
	  OutputStream outPut=conn.getOutputStream();
	  outPut.write(b);
	  outPut.flush();
	  outPut.close();
	  //判断请求是否成功
	  if(conn.getResponseCode()==200){
		    InputStream in=conn.getInputStream();
		    byte[] b1=new byte[1024];
			int len=0;
			int temp=0;
			while((temp=in.read())!=-1){
				b1[len]=(byte)temp;
				len++;
			}
			str=new String(b1,"UTF-8");
			
		
	  }
	  return str;
	  
  }

下面来看下断点运行后的结果



我们能够看到webservice已经调用成功了,我们拿到了返回结果
下面我把测试类贴出来
UseHttpPost use=new UseHttpPost();
		try {
			InputStream in=this.getClass().getClassLoader().getResourceAsStream("soap.xml");
			use.soapService(in, "13764928990");
			
		} catch (Exception e) {
			Log.e(TAG, e.getMessage());
		}


webservice---soap协议 SOAP(SimpleObjectaccessPRotocal,简单对象访问协议)技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问。SOAP是把成熟的基于HTTP的WEB技术与xml的灵活性和可扩展性组合在了一起。 SOAP协议:简单对象访问协议(SOAP:Simple Object Access Protocol),简单对象访问协议(SOAP)是一种轻量的 阅读详情

相关推荐

基于Python的携程景点评价爬虫与情感评分分析

摘要: 本项目通过Python技术栈实现携程景点评论的情感分析系统,包含数据爬取、文本预处理、情感评分和可视化分析全流程。使用requests抓取评论接口,jieba进行中文分词,SnowNLP计算情感得分(0-1),并通过词云、情感分布图呈现结果。典型分析显示72%评论为正面,负面反馈多涉及"排队久""票价贵"等问题。系统可辅助景点口碑管理,扩展方向包括多景点对比、BERT模型优化等。项目强调需遵守爬虫伦理,控制请求频率,适用于非商业用途的旅游数据分析。(150字)

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 977

Web Service(三)—— SOAP学习

SOAP 指简易对象访问协议SOAP 是一种通信协议SOAP 用于应用程序之间的通信SOAP 是一种用于发送消息的格式SOAP 被设计用来通过因特网进行通信SOAP 独立于平台SOAP 独立于语言SOAP 基于 XMLSOAP 很简单并可扩展SOAP 允许您绕过防火墙SOAP 将被作为 W3C 标准来发展为什么使用 SOAP?SOAP 提供了一种标准的方法,使得运行在不同的操作系统并使用不同的技术和编程语言的应用程序可以互相进行通信。

此心光明事上练的博客 4549

cmu15445(2024fall) project 2

project 2比p1难度要更大,代码量更大且涉及的知识更多,实现中出现的bug更多,好在是最后全部解决了。我最大的收获在于对于多线程编程的理解更深入了,实际发现解决了多个多线程相关的bug,学会了更多多线程下debug的技巧方法,也见识了更多多线程的bug情况。在之后可以更系统的学习一下多线程编程。同时学会实现B+树也是需要掌握的基础。

Jerome_Yi的博客 1559

最简单易懂的webService客户端之soap+xml请求

代码准备:   1.网络上有提供一些免费的服务器测试地址,可以上这里找一找:https://my.oschina.net/CraneHe/blog/183471   2.我选择了一个翻译地址:http://www.webxml.com.cn/WebServices/TranslatorWebService.asmx     2.1打开之后看到该地址下有一个方法:     2.2点击进入...

weixin_34148508的博客 2024

外贸英文函电第三版张梅英课后习题答案解析

我参加了一些外贸模拟竞赛,将所学知识运用到实际工作中,取得了不错的成绩。此外,我还积极参与了一些外贸实践活动,如参加实习、担任志愿者等,从中积累更多的经验。在这个过程中,我逐渐摸索出了一套适合自己的学习方法,不仅提高了学习效果,还增强了自信心。通过学习这本书,我们可以提高自己在外贸领域的沟通能力,更好地应对未来的工作挑战。在学习这本书的过程中,我遇到了一些困难,比如对某些专业术语的理解不够透彻,对信件的结构和格式掌握不够熟练。出版社: 高等教育出版社。上传者: ʚ河西撒手没ɞ。

weixin_58833001的博客 1425

转子动力学 | 临界速度与稳定性分析

本文深入探讨了转子动力学中的核心问题——临界速度与稳定性分析。临界速度是旋转机械发生共振的危险转速,通过模态分析和坎贝尔图可进行预测。文章还剖析了油膜涡动等稳定性问题,并结合ANSYS仿真案例,详细阐述了从建模、分析到设计优化的完整工程实践流程,为旋转机械的可靠设计与安全运行提供关键指导。

weixin_29313239的博客 518

【C#】标准WebService Soap1.1 兼容 ContentType: application/xml

Soap协议版本1.1。

少莫千华 2723

Java炫酷烟花③(完整代码)

Java语言实现炫酷烟花动画的完整代码。 下载代码 下载链接:我是一只有趣的兔子,感谢你的喜欢。

AIGC 784

经过webservice提交xml数据以及soap协议的使用

http://www.educity.cn/wenda/124365.html 转载于:https://www.cnblogs.com/newcoder/p/4132322.html

weixin_34318272的博客 224

(11-3-01 )

以太坊(Ethereum)是一种基于区块链技术的开源平台和加密货币。它于2015年由Vitalik Buterin和Gavin Wood等开发者创建,并成为比特币之后最受欢迎的加密货币之一。以太坊不仅支持加密货币交易,还为开发者和企业提供了构建去中心化应用程序的强大工具。在本节的内容中,将实型一个完整的机器学习模型项目,智能检测出以太坊区块链中的非法账户。从问题定义到模型建立和评估,再到最终的总结和建议。本实例突出了处理类别不平衡问题的重要性,并展示了如何使用多种机器学习算法来解决实际问题。此外,通过数据可

码农三叔 2170

〔重庆理工大学〕操作系统实验指导书【实验三 系统调用】

本实验指导书详细介绍了在Linux 0.11系统中添加两个自定义系统调用(iam()和whoami())的完整流程。实验内容包括:修改unistd.h添加系统调用号,更新sys_call_table数组,实现内核函数sys_iam()和sys_whoami(),以及编写测试程序验证功能。关键步骤涉及用户态与内核态数据传递、系统调用号分配、中断处理机制等核心概念。实验要求学习者通过修改内核源码、理解系统调用原理,最终实现名字存储与读取功能,并完成测试验证。实验还提供了视频学习资源和参考书籍,帮助深入理解操作系

Pretty Boy Fox的博客 1294

java使用SOAP协议访问webservice接口 xml转换

最近在对接webservice接口使用的是生成客户端模式,发现并不是很好用,尤其是我对接的这个,就一个接口一个类,一个类的大小就2m用idea打开,cpu瞬间跑满,卡的不要不要的,所以试试用soap协议去访问服务 第一步就是将要发送的信息转换为xml格式 JDK中JAXB相关的重要Annotation:(来源于百度百科JAXB) @XmlType,将Java类或枚举类型映射到XML模式类型 @XmlAccessorType(XmlAccessType.FIELD) ,控制字段或属性的序列化。FIELD表示

ycg的博客 4338

2025秋招LLM大模型多模态面试题(八)- langchain完整面试题

1. **什么是 LangChain** 2. **LangChain 包含哪些核心模块** - 模型输入/输出(Model I/O) - 组件管理 - 数据处理 - 链式组合 - 记忆与上下文管理 - 外部集成 3. **一些核心概念** 4. **什么是 LangChain Agent?** 5. **什么是 LangChain model?** 6. **LangChain 包含哪些特点?** 7. **LangChain 如何使用?** - LangChai

weixin_41496173的博客 2192

Java使用SOAP调用WebService

1、webservice三要素 Webservice三要素包括:SOAP、WSDL、UDDI soap用来描述传递信息的格式; wsdl用来描述如何访问具体的接口 uudi用来管理,分发,查询webservice。 soap使用基于XML的数据结构和超文本传输协议(HTTP)的组合定义了一个标准的方法来使用INternet上各种不同操作环境中的分布式对象; 2、相关定义: 1、基于类对象的传输协议...

一只刚入坑小白的博客 1万+

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

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

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

[SOAP] SOAP协议基础知识

介绍了一下SOAP和WSDL。以及WSDL的解读,SOAP请求的使用。

zlllc的博客 2662

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

WebService——SOAP详解

SOAP即(Simple Object Access Protocol)简单对象访问协议是交换数据的一种协议规范,是一种轻量的、简单的、基于XML(标准通用标记语言下的一个子集)的协议,它被设计成在WEB上交换结构化的和固化的信息。SOAP 可以和现存的许多因特网协议和格式结合使用,包括超文本传输协议(HTTP),简单邮件传输协议(SMTP),多用途网际邮件扩充协议(MIME)。它还支持从消息系统到远程过程调用(RPC)等大量的应用程序。

吴声子夜歌的博客 1万+

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

WebService WebAPI SOAP XML JSON

WCF、WebAPI、WCFREST、WebService四种数据交换技术 Web Service 基于SOAP协议的,数据格式是XML 只支持HTTP协议 不是开源的,但可以被任意一个了解XML的人使用 只能部署在IIS上 webservice就是远程调用技术,也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递...

qq_30021219的博客 814

Soap+xml实现webservice 调用

webservice 接口调用方式有很多。项目中用到的是海康视频平台视频的获取; soap+xml 格式 (xml请求数据解析性能问题)、 jdk自带的wsimport 实现如调用本地接口一样实现远程接口的调用 (灵活性不足) cxf包中提供的 JaxWsDynamicClientFactory 类调用 (可能会存在JAR冲突问题) Ajax调用方式(存在跨域问题) 本文实现的是Soap+x...

weixin_43128990的博客 4008

使用Soap Toolkit及Soap协议访问WebService

本文使用的soap toolkit 3.0直接上VB代码: Sub SoapMethod() On Error GoTo errhandler '方法1:使用soap toolkit,此方法需要安装soap toolkit3.0 Dim soapclient As Object Set soapclient = CreateObject("MSSOAP.SoapClient...

weixin_43926268的博客 1739

webservice中xml、soap、wsdl基础知识

Web Services 是由xml来定义数据格式的,通过SOAP协议在各个系统平台中传输,那么接下来讨论下SOAP和WSDL的各自作用。SOAP和WSDL对Web Service、WCF进行深入了解的基础,因此花一些时间去了解一下是很有必要的。一、SOAP(Simple Object Access Protocol)如果我们要调用远程对象的方法,就必定要告诉对方,我们要调用的是一个什么方法,以及...

samyang1的博客 1万+

基于webservice soap协议利用xml格式自定义报文进行传输和解析返回报文(实例)

一.发送自定义soap报文(内嵌jsonString)获取返回报文工具类   import com.meeno.apiservice.framework.BusinessException; import javax.xml.soap.*; import javax.xml.transform.Source; import javax.xml.transform.Transformer; im...

M义薄云天的博客 2万+

C操作XML读取生成与WEBSERVICE接口使用教程:让数据交互更高效

C#操作XML读取生成与WEBSERVICE接口使用教程:让数据交互更高效 去发现同类优质开源项目:https://gitcode.com/ C#操作XML读取生成与WEBSERVICE接口使用教程,为您提供全面的技术支持,助您轻松掌握C#操作XML的核心技能。 项目介绍 本项目是一个开源教程,专注于C#语言对XML文件的读取、生成,以及如何利用WEBSERVICE接口实现XML数据传输。教程旨在...

gitblog_06797的博客 943

理解SOAP和WebService

1. SOAP是什么 SOAP 简单对象访问协议,是交换数据的一种协议规范,是一种轻量的、简单的、基于XML的协议; SOAP 是一种通信协议,用于应用程序之间的通信; SOAP 是一种用于发送消息的格式; SOAP 被设计用来通过因特网进行通信; SOAP 基于 XML; 2. webService是什么 从表面上看,WebService就是一个应用程序,它向外界暴露出一个能够通过Web进...

qq_39198749的博客 3153
上一篇: android进度条演示
下一篇: android项目打包
青蛙小王子
博客等级 码龄16年 239粉丝 311原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值