Java调用WebService接口实践案例

最终效果

在网上找了一个免费的webservice接口简单做个测试,可以正常返回结果

	public static void main(String[] args) {String url = "http://www.webxml.com.cn/WebServices/WeatherWebService.asmx";String xmlData = "<soapenv:Envelope xmlns:soapenv=\"http://schemas.xmlsoap.org/soap/envelope/\" xmlns:web=\"http://WebXml.com.cn/\">\n" +"   <soapenv:Header/>\n" +"   <soapenv:Body>\n" +"      <web:getSupportCity>\n" +"         <!--Optional:-->\n" +"         <web:byProvinceName>江苏</web:byProvinceName>\n" +"      </web:getSupportCity>\n" +"   </soapenv:Body>\n" +"</soapenv:Envelope>";callWebservice(null,xmlData,url);}

intelj控制台执行结果

17:53:38.952 [main] DEBUG org.springframework.web.client.RestTemplate - Reading to [java.lang.String] as “text/xml;charset=utf-8”
result==={“getSupportCityResponse”:{“xmlns”:“http://WebXml.com.cn/”,“getSupportCityResult”:{“string”:[“南京 (58238)”,“苏州 (58357)”,“昆山 (58356)”,“南通 (58259)”,“太仓 (58377)”,“吴县 (58349)”,“徐州 (58027)”,“宜兴 (58346)”,“镇江 (58248)”,“淮安 (58145)”,“常熟 (58352)”,“盐城 (58151)”,“泰州 (58246)”,“无锡 (58354)”,“连云港 (58044)”,“扬州 (58245)”,“常州 (58343)”,“宿迁 (58131)”]}}}

soapui执行结果
在这里插入图片描述

核心方法

支持Auth授权、支持本地证书、支持在线证书

public static Map<String, String> callWebservice(String certUrl, String xmlData, String url) {Map<String, String> resMap = new HashMap<>();try {// 用户名和密码 进行Base64编码,如果是不需要账号密码授权,可去掉// String username = "test";// String password = "111111";// String auth = username + ":" + password;// byte[] encodedAuth = Base64.getEncoder().encode(auth.getBytes(StandardCharsets.UTF_8));// String authHeader = "Basic " + new String(encodedAuth);// 不需要证书直接newRestTemplate restTemplate = new RestTemplate();// 使用带证书的restTemplate,可以是在线证书url,也可以是本地证书// RestTemplate restTemplate = RestUtils.createRestTemplate(KeyStoreUtils.loadKeyStoreFromUrl(certUrl));// RestTemplate restTemplate = RestUtils.createRestTemplate(KeyStoreUtils.loadKeyStore("D:\\ABC.cer"));HttpHeaders httpHeaders = new HttpHeaders();MediaType mediaType = MediaType.parseMediaType("text/xml; charset=UTF-8");httpHeaders.setContentType(mediaType);// httpHeaders.add("Authorization", authHeader);HttpEntity<String> httpEntity = new HttpEntity<>(xmlData

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/444568.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

springboot 整合spring ai实现 基于知识库的客服问答

rag 需求产生的背景介绍&#xff1a; 在使用大模型时&#xff0c;常遇到的问题之一是模型可能产生幻觉&#xff0c;即生成的内容缺乏准确性。此外&#xff0c;由于大模型不直接访问企业的专有数据&#xff0c;其响应可能会显得泛泛而谈&#xff0c;不够精准或具体&#xff0c;…

onnx代码解读

一、定义 torch.jit.trace 相关代码解读onnx 内部实现 3 查看是否为aten 算子aten 算子实现torch.autograd.Functions 算子实现自定义算子实现查找未实现的节点一次性发现所有的未实现 aten 算子 二、实现 torch.jit.trace 相关代码解读 1. torch.jit.script() : 将其转换为…

CSD(computational storage devices)架构介绍

CSD&#xff08;computational storage devices&#xff09;架构介绍 前言一、CSD与传统SSD的架构对比二、为什么要采用FPGA三、FPGA缺点四、个人总结reference 前言 虽然一直有接触CSD&#xff0c;但一直对其原理和架构知之甚少&#xff0c;半知不解。今天&#xff0c;趁着我还…

CSS计数器

CSS 中的计数器类似于变量&#xff0c;可以实现简单的计数功能&#xff0c;并将结果显示在页面上&#xff0c;在早期的网站上应用比较广泛。要实现计数器需要用到以下几个属性&#xff1a; counter-reset&#xff1a;创建或者重置计数器&#xff1b;counter-increment&#xf…

机器学习框架(含实例说明)

机器学习框架是用于开发和部署机器学习模型的软件库和工具集。它们提供了一系列的算法、工具和基础设施&#xff0c;帮助开发者更高效地构建、训练和部署机器学习模型。以下是一些主要的机器学习框架及其详细介绍&#xff1a; 1. TensorFlow TensorFlow 是由Google开发的开源…

盘点2024年双十一最值得入手的好物,双十一必买清单大汇总

随着科技的飞速发展&#xff0c;数码产品已成为我们生活中不可或缺的伙伴。2024年双十一购物狂欢节即将来临&#xff0c;众多消费者早已摩拳擦掌&#xff0c;准备在这个年度盛事中淘到心仪的数码好物。在这个信息爆炸的时代&#xff0c;如何从琳琅满目的商品中挑选出性价比高、…

C# WPF 仿 Android Toast 效果

转载请注明出处: https://blog.csdn.net/hx7013/article/details/142860084 主职Android, 最近需要写一些WPF的程序作为上位机&#xff0c;目前WPF的MessageBox过于臃肿&#xff0c;且想找一个内置的非阻塞的简单提示一直找不到&#xff0c;想到了Android的Toast所以写了这个扩…

如何实现C#和Python之间实时视频数据交互

我们在做RTSP|RTMP播放的时候&#xff0c;遇到好多开发者&#xff0c;他们的视觉算法大多运行在python下&#xff0c;需要高效率的实现C#和Python的视频数据交互&#xff0c;常用的方法如下&#xff1a; 方法一&#xff1a;通过HTTP请求传输视频数据 服务器端&#xff08;Pyth…

浙江省发规院产业发展研究所调研组莅临迪捷软件考察调研

2024年10月10日下午&#xff0c;浙江省发展与规划院产业发展研究所调研组一行莅临迪捷软件考察调研&#xff0c;绍兴市府办、区发改、区经信、迪荡街道等相关领导陪同。 调研组一行参观了迪捷软件的展厅与办公区&#xff0c;深入了解了迪捷软件的公司发展历程、运营状况、产品…

『网络游戏』数据库表格转储【25】

避免勿删数据库表格&#xff0c;可以将表格存储 放到桌面即可 现在将表格删除后点击 浏览桌面表格保存即可 修改客户端脚本&#xff1a;NetSvc.cs 目的是在数据库更新异常时弹出提示以便修改 本章结束

一文区分SSTI 和 CSTI

前言 有时&#xff0c;SSTI&#xff08;服务器端模板注入&#xff09;和 CSTI&#xff08;客户端模板注入&#xff09;可能会由于它们相似的负载语法而混淆。这种混乱可能会导致渗透测试人员浪费时间尝试实现反向 shell&#xff0c;即使payload仅限于客户端。 定义 &#x1d…

【AI系统】AI系统的组成

AI系统的组成是实现其设计目标的基础。本文将详细介绍AI系统的各个组成部分&#xff0c;以及它们如何协同工作以支持AI应用程序的开发和运行。 I. 引言 AI系统的复杂性要求其组成不仅要关注单一的硬件或软件&#xff0c;而是需要一个多层次、多维度的架构设计。这包括从应用与…

安卓13禁止用户打开开发者选项 android13禁止用户打开开发者选项

总纲 android13 rom 开发总纲说明 文章目录 1.前言2.问题分析3.代码分析4.代码修改5.编译6.彩蛋1.前言 设置 =》关于平板电脑 =》版本号,一般的话,在这里连续点击就可以打开我们的开发者选项了。但是有些系统要进行保密,因此要禁止用户进入。 2.问题分析 这里我们是通过点…

vue3.5系列之响应式props解构的几点技巧对比

在最新的版本3.5x中&#xff0c;对props的能力也进行了加强。下面&#xff0c;我们具体看下有哪些变化&#xff0c;给我们带来的新的体验&#xff01; 体验一 3.5之前解构props的效果 // 子组件 <template><div><h1>响应式props</h1><p>{{ co…

Linux工具的使用——yum和vim的理解和使用

目录 linux工具的使用1.linux软件包管理器yum1.1yum的背景了解关于yum的拓展 1.2yum的使用 2.Linux编辑器-vim使用2.1vim的基本概念2.2vim的基本操作2.3命令模式命令集2.3.1关于光标的命令&#xff1a;2.3.2关于复制粘贴的命令2.3.3关于删除的命令2.3.4关于文本编辑的命令 2.4插…

ElasticSearch备考 -- Update by query Reindex

一、题目 有个索引task&#xff0c;里面的文档长这样 现在需要添加一个字段all&#xff0c;这个字段的值是以下 a、b、c、d字段的值连在一起 二、思考 需要把四个字段拼接到一起&#xff0c;组成一个新的字段&#xff0c;这个就需要脚本&#xff0c; 这里有两种方案&#xff…

Python进阶--正则表达式

目录 1. 基础匹配 2. 元字符匹配 1. 基础匹配 正则表达式&#xff0c;又称规则表达式&#xff08;Regular Expression&#xff09;&#xff0c;是使用单个字符串来描述、匹配某个句法规则的字符串&#xff0c;常被用来检索、替换那些符合某个模式&#xff08;规则&#xff…

zotero使用koofr+google drive/onedrive同步

最早了解到这个思路是来自 知乎-【从零开始使用Zotero】(3) Zotero文献同步方式 和 How to Sync Zotero Files Using WebDAV and Google Drive with Koofr: A Step-by-Step Guide 虽然周围很多人都在用Readpaper这种web端的了&#xff0c;但是经常逛Arxiv而且zotero的web插…

计算机网络——email

pop3拉出来 超出ASCII码范围就不让传了 这样就可以传更大的文件

与 MySQL 建立连接

命令行连接 MySQL 前面介绍了在 Windows 下安装最新版 MySQL 初始化安装步骤&#xff0c;启动 MySQL 服务&#xff0c;记录的初始密码可用于 “root” 账户登录进行相关操作&#xff0c;Windows 和 Linux 命令行操作步骤一样: 上图为 MySQL 的初始密码。在 Windows 下打开 CMD …