java调用C# webService发布的接口
java调用C# webService发布的接口
java调用C# webService方式有很多种我这里只介绍一种
首先需要引入axis的jar包 axis的maven坐标如下
<dependency>
<groupId>org.apache.axis</groupId>
<artifactId>axis</artifactId>
<version>1.4</version>
</dependency>
也可以到这个地址搜索然后复制坐标输入即可 https://mvnrepository.com/
下面是调用列子代码:
//接口地址
String oaurl = Preferences.getInstance().getOAURL();
String result = null;
try {
//命名空间我这里是例子代码随便写的命名空间地址(具体地址可以通过wsdl文件查看或者问接口提供方获取))
String soapaction = "http://localhost.org/";
Service service = new Service();
//创建Call对象,Call对象用于调用服务
Call call = (Call) service.createCall();
//设置webServiced的URL
call.setTargetEndpointAddress(oaurl);
//设置调用方法名
call.setOperationName(new QName(soapaction, "GetJson"));//设置要调用的方法名
//设置请求参数(str是接口的入参变量,具体查看你调用的接口)
call.addParameter(new QName(soapaction , "str"),
org.apache.axis.encoding.XMLType.XSD_STRING,
javax.xml.rpc.ParameterMode.IN); /**
* 也可以这样设置请求参数,具体根据接口入参方式选择
* call.addParameter(new QName(soapaction , "userName"),
* org.apache.axis.encoding.XMLType.XSD_STRING,
* javax.xml.rpc.ParameterMode.IN);
* call.addParameter(new QName(soapaction , "phone"),
* org.apache.axis.encoding.XMLType.XSD_STRING,
* javax.xml.rpc.ParameterMode.IN);
* */
//设置返回结果类型
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);
//call.setReturnType(new QName(soapaction, "GetJson"), String.class);
call.setUseSOAPAction(true);
call.setSOAPActionURI(soapaction + "GetJson"); Map<String, Object> params = new HashMap<>(); List<String> list = new ArrayList<>(); String[] address = new String[]{"http://www.baidu.com/1.jpg"};
String[] fileName = new String[]{"附件1"};
String dateStr = new SimpleDateFormat("yyyy-MM-dd").format(new Date());
String[] fileDate = new String[]{dateStr}; Collections.addAll(list , "2019-10-14 09:48:35.930", "slbh", "101000001", "hm", "20", "ch", "cnxh", "bw", "q6q", "gyh",
"kj", "lxr", "dh", "符合申请");
params.put("flowname", "符合申请");
params.put("username", "pinlin");
params.put("data" , list);
params.put("attach_count", "1");
params.put("address" ,address);
params.put("filename" , fileName);
params.put("filedate", fileDate); //转换成JSON字符串
String strs = JSON.toJSONString(params);
System.out.println("str============" + strs); /**执行接口调用并得到返回接口
*
* result = (String) call.invoke(new Object[]{"pinlin","123456899"} );
* 如果上面设置参数时设置多个的。传参顺序要设置的顺序要一致
* */
result = (String) call.invoke(new Object[]{strs});
System.out.println("result = " + result);
} catch (Exception e) {
e.printStackTrace();
log.error(e.toString());
}
如何查看通过接口地址得到wsdl,这里以天气预报公共的接口为列子,步骤如下
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl
在接口地址后面加上?wsdl即可 这里介绍一些基本信息如下:
也可以直接地址查看接口有那些方法,步骤如下:
http://www.webxml.com.cn/WebServices/WeatherWebService.asmx
可以点击这些方法名进入里面会有说明调用方式,具体如下:
调用C# webservice的发布的API也可以通过wsdl文件直接客户端代码调用,有apache-cxf,这个我使用过,但是生成的代码我调用不成功,不知道是不是我操作不对,具体问题这个我还在探索中。
本人水平有限也是我第一次补发博客文章,有哪里写不好或者不对的地方,还请大家多多指点。
由于第一次写博客,排版有些不好还请谅解。
java调用C# webService发布的接口的更多相关文章
- Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法 转
Java调用.Net WebService参数为空解决办法 (远程)调试webservice方法 同事遇到一个很囧的问题,java调,netwebservice的时候,调用无参数方法成功,调用有参 ...
- java调用 C# webservice接口
java调用webservice接口方式有多种,本人很懒,测试一种满足我的需求,故为试验其他方法,仅供参考 一:工具 MyEclipse,C#编码发布的webservice接口 二:步骤 1.打开my ...
- java调用CXF WebService接口的两种方式
通过http://localhost:7002/card/services/HelloWorld?wsdl访问到xml如下,说明接口写对了. 2.静态调用 // 创建WebService客户端代理工厂 ...
- JAVA调用.NET WebService终极方案(包含对SoapHeader的处理)
一.前言: 今日部门的产品需要用到短信功能,需要走公司统一的接口,而该短信接口是由.net开发的,利用两天时间彻底搞定了用java来调用.net 的web service,包括对soap h ...
- Java调用.NET webservice方法的几种方式
最近做项目,涉及到web-service调用,现学了一个星期,现简单的做一个小结.下面实现的是对传喜物流系统(http://vip.cxcod.com/PodApi/GetPodStr.asmx?ws ...
- 使用WebService发布soap接口,并实现客户端的https验证
什么是https HTTPS其实是有两部分组成:HTTP + SSL / TLS, 也就是在HTTP上又加了一层处理加密信息的模块,并且会进行身份的验证. 如何进行身份验证? 首先我们要明白什么是对称 ...
- Java调用阿里云短信接口发送手机验证码
前五步可参考阿里云服务文档:https://help.aliyun.com/document_detail/59210.html?spm=a2c4g.11174283.4.1.2b152c42DoJ7 ...
- JAVA调用阿里云短信接口
官方文档:https://help.aliyun.com/document_detail/101414.html?spm=a2c4g.11186623.6.626.2cef6220yxh5l7 jar ...
- Axis2 java调用.net webservice接口的问题(郑州就维)
这是一个古老的问题,古老到从我若干年前遇到这样的问题就是一个解决之道:反复尝试.其实标准是什么,标准就是一个束缚,一种按既定规则的束缚,错点点,你的调用就可能不成功,不成功后你要花费大量的力气查找原因 ...
随机推荐
- luogu P1452 [USACO03FALL]Beauty Contest G /【模板】旋转卡壳
LINK:旋转卡壳 如题 是一道模板题. 容易想到n^2暴力 当然也能随机化选点 (还真有人过了 考虑旋转卡壳 其实就是对于某个点来说找到其最远的点. 在找的过程中需要借助一下个点的帮助 利用当前点到 ...
- 代码规范、API设计等规范
一份整理好了的规范文档,node后端开发用到 "规范是个好东西..." - 鲁迅 以下规范仅作为参考 1.代码规范 命名 尽量保证命名更加语义化 文件命名采用下划线命名法 // g ...
- 看了这篇文章,我搞懂了StringTable
好好学习,天天向上 本文已收录至我的Github仓库DayDayUP:github.com/RobodLee/DayDayUP,欢迎Star,更多文章请前往:目录导航 前言 String应该是Java ...
- TF上架模式是什么?有什么作用?
TF上架模式中的TF上架就是TestFlight上架的意思,意思就是将开发者开发完成的App在苹果官方内测商店TestFlight上架的模式,一般被我们简称为TF上架模式. 为什么要了解TF上架呢?为 ...
- Dropzone.js文件拖拽上传提示Dropzone already attached 解决
最近收到客户的反馈,在操作上传文件有时会出现没有任何.大部分时间是正常. 重现问题后,f12打开后台控制台发现如下提示: Uncaught Error: Dropzone already attach ...
- .NET 异步详解
前言 博客园中有很多关于 .NET async/await 的介绍,但是很遗憾,很少有正确的,甚至说大多都是"从现象编原理"都不过分. 最典型的比如通过前后线程 ID 来推断其工作 ...
- javascript 字符串对象
数组转换字符串 tostring() 将数组转换成字符串 join(分隔符)将数组转换成字符串 基本包装类型 基本包装类型 就是把简单数据类型 包装成繁杂数据类型 ...
- 洛谷 P4198 楼房重建
思路 此题可转化为以下模型 给定序列\(a[1...n]\),支持单点修改,每次求区间单调栈大小 \(n,Q\le 10^5\) 区间单调栈是什么呢?对于一个区间,建立一个栈,首先将第一个元素入栈,从 ...
- Eclipse的Servers中无法添加Tomcat6/7
2017年03月06日 17:14:46 阅读数:1007 Eclipse中在添加tomcat时发现6和7点击后发现ServerName是灰色的不能使用,也点不了NEXT,在各种查百度后发现需要删除w ...
- 调试备忘录-nRF24L01P的使用(教程 + 源码)
目录--点击可快速直达 MCU:KEAZ64A MDK:CodeWarrior 11.0 目录 写在前面 什么是nRF24L01P? nRF24L01P模块的简单介绍 nRF24L01P的工作模式 n ...