java 调用webservice (asmx) 客户端开发示例

java 调用webservice (asmx) 客户端开发示例这是本人第一次写博客,其实就是自己做个笔记,也希望能给跟我遇到同样问题的你一点帮助。有不专业的地方敬请指正。    因为最近有个项目要调用webservice接口,之前接触的都是java开发服务端和客户端的接口,开发前服务端一般会给个以http://xxx/services?wsdl地址的文件或者地址。这次对方给我个http://xxxx/service/getinfo.asmx 的

大家好,又见面了,我是你们的朋友全栈君。

这是本人第一次写博客,其实就是自己做个笔记,写的很粗糙,也希望能给跟我遇到同样问题的你一点帮助。

        因为最近有个项目要调用webservice接口,之前接触的都是java开发服务端和客户端的接口,开发前服务端一般会给个以http://xxx/services?wsdl地址的文件或者地址。这次对方给我个http://xxxx/service/getinfo.asmx  的连接,我就傻眼了,之前没有遇到过,是不是给错了,跟对方联系说是他们的服务端是用C#开发的。c#没学过,webservice的特性之一就是可以跨语言的,不会只能找度娘。

       参考了:http://blog.csdn.net/leon_ice/article/details/4466613 的文章自己也总结了点东西

      本文只将如果用java开发客户端

      1、.asmx调用方式和之前cxf 或者xfire 方式不同,不需要生成客户端代码,直接调用使用,先把我的代码贴出来,然后根据代码一步步说明。

public String test() throws RemoteException, ServiceException, MalformedURLException{

String inputParam = “测试”;
Service service = new Service();  
String url = “http://xxxxxxx/service/getinfo.asmx”;  //URL地址
String namespace = “http://tempuri.org/”; 
String actionUri = “getinfo“; //Action路径  
String op = “getinfo“; //要调用的方法名  
Call call = (Call) service.createCall();  
call.setTargetEndpointAddress(new java.net.URL(url));  
call.setUseSOAPAction(true);  
call.setSOAPActionURI(namespace + actionUri); // action uri  
call.setOperationName(new QName(namespace, op));// 设置要调用哪个方法  
// 设置参数名称,具体参照从浏览器中看到的  
call.addParameter(new QName(namespace, “strMac”), XMLType.XSD_STRING, ParameterMode.IN);  //设置请求参数及类型
//call.setReturnType(new QName(namespace,”getinfo”),Model.class); //设置返回结果为是某个类
call.setReturnType(org.apache.axis.encoding.XMLType.XSD_STRING);//设置结果返回类型
Object[] params = new Object[] {
inputParam};  

String result = (String) call.invoke(params); //方法执行后的返回值  
System.out.println(result);
return result;
}


      2、打开http://xxxx/service/getinfo.asmx  连接会出现类似如下内容,红框部分为调用方法,

java 调用webservice (asmx) 客户端开发示例


   3、点击进去后可以看到,SOAPAction 对应上面代码中的namespace,注意去掉后面的方法名,后面会单独拼接这个方法名

         可以看到请求参数名、类型和返回结果类型。

java 调用webservice (asmx) 客户端开发示例

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/138669.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 如何完全卸载Android Studio (干干净净)

    如何完全卸载Android Studio (干干净净)

    2021年10月2日
    1.2K
  • DVP,LVDS和MIPI「建议收藏」

    DVP,LVDS和MIPI「建议收藏」Mipi接口和LVDS接口区别主要区别:1.LVDS接口只用于传输视频数据,MIPIDSI不仅能够传输视频数据,还能传输控制指令;2.LVDS接口主要是将RGBTTL信号按照SPWG/JEIDA格式转换成LVDS信号进行传输,MIPIDSI接口则按照特定的握手顺序和指令规则传输屏幕控制所需的视频数据和控制数据。液晶屏有RGBTTL、LVDS、MIPIDSI接口…

    2022年5月4日
    168
  • A记录、CNAME和URL转发区别[通俗易懂]

    A记录、CNAME和URL转发区别[通俗易懂]我们在做域名解析时,尤其是很多虚拟主机,大都会使用到CNAME解析,独立主机、VPS则用A记录较多,而URL转发则会在更换域名时用到,从设置效果来看,都是“解析”到一个“其它”URL地址,而实际上它们之间还是有些区别的,尤其是URL转发和其它两个之间区别很大的,首先A记录和CNAME属于标准的DNS记录,而URL转发则实际上只是个简单的重定向。另外,我们还常遇到别名ALIAS这个词,ALIAS对解

    2022年10月9日
    2
  • HTML入门与进阶以及HTML5

    HTML入门与进阶以及HTML5目录一、简介1、前端开发最核心技术(1)HTML是什么?(2)CSS(3)JavaScript2、前端开发其他技术二、基础内容1.基础总结2.HTML的基本标签(1)HTML标签(2)head标签(3)body标签3、段落与文字(一)、段落标签(二)、网页特殊符号(三)、自闭合标签(四)、块元素和行内元素(五)、练…

    2022年6月4日
    41
  • USB转485工业级两线制转换器

    USB转485工业级两线制转换器技术指标单片(ASIC)USB端口到串行端口通信,支持即插即用和热插拔RS485口特性:接口兼容RS485标准,信号:T/R+,T/R-,GND电气接口:DB9针型(公头)连接口加外配接线板,波特率:300bps-921.6Kbps支持串行数据帧格式:8数据位,奇/偶/无校验位,1停止位USB端口提供全速12Mbps的传输速率完全符合U…

    2022年5月27日
    34
  • MyBatis-Plus 之分页查询

    MyBatis-Plus 之分页查询MyBatis-Plus之分页查询首先创建一个数据库表,如下图所示:然后创建一个SpringBoot项目,pom.xml和配置如下:<?xmlversion=”1.0″encoding=”UTF-8″?><projectxmlns=”http://maven.apache.org/POM/4.0.0″xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”xsi:schemaLoc

    2022年6月2日
    38

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号