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 P4525 自适应辛普森法1
LINK:自适应辛普森法1 观察题目 这个东西 凭借我们的数学知识应该是化简不了的. 可以直接认为是一个函数 求定积分直接使用辛普森就行辣. 一种写法: double a,b,c,d; double ...
- 授人以渔:stm32资料查询技巧
摘要:本章以stm32f103作为案例向大家讲解arm公司和st公司的关系以及我们在对stm32开发时需要如何正确的查找手册. ARM公司和ST公司的关系 这里要从一块芯片的生产说起,比如我们要生成一 ...
- Android menu菜单的深入了解。。。
今天补充刚开始的菜单控件,这是基于: https://www.cnblogs.com/aolong/p/12868015.html 里面的菜单写的. 今天学的后面部分是结合昨天的Fragment一起的 ...
- 高效c/c++日志工具zlog使用介绍
1. zlog简介 zlog的资料网上很多,这里不在详细说明:zlog是用c写的一个日志工具,非常小,而且高效,可以同时向控制台和文件中输出,日志接口与printf使用基本一样,所以使用起来很简单. ...
- 不能错过的分布式ID生成器(Leaf ),好用的一批!
本文收录在个人博客:www.chengxy-nds.top,技术资料共享,同进步 不了解分布式ID的同学,先行去看<一口气说出 9种 分布式ID生成方式,面试官有点懵了>温习一下基础知识, ...
- 【Python笔记】2020年7月30日练习【python用input函数输入一个列表】
练习课题链接:廖雪峰-Python教程-高级特性-迭代 学习记录: 1.Python当中类似于 三目运算符 的应用 2.Python用input函数输入一个列表 代码实例:对用户输入的一组数字转化成l ...
- 工作流选型专项,Camunda or flowable or?
1. 名词解释 1.1. BPM Business Process Management,业务流程管理,“通过建模.自动化.管理和优化流程,打破跨部门跨系统业务过程依赖,提高业务效率和效果”. 1.2 ...
- 【luogu1613】跑路 - 倍增+Floyd
题目描述 小A的工作不仅繁琐,更有苛刻的规定,要求小A每天早上在6:00之前到达公司,否则这个月工资清零.可是小A偏偏又有赖床的坏毛病.于是为了保住自己的工资,小A买了一个十分牛B的空间跑路器,每秒钟 ...
- C#分布式登录——jwt
一.传统的session登录 在服务器存储一份用户登录的信息,这份登录信息会在响应时传递给浏览器,告诉其保存为cookie,以便下次请求时发送给我们的应用,这样我们的应用就能识别请求来自哪个用户了,这 ...
- Android TextView 字数过多,用跑马灯滚动形式实现
上代码: <TextView android:layout_width="120dp" android:layout_height="wrap_content&qu ...