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)
上一篇 2022年5月31日 上午6:00
下一篇 2022年5月31日 上午6:00


相关推荐

  • 激光slam理论与实践_SLAM算法

    激光slam理论与实践_SLAM算法激光SLAM笔记(1)——激光SLAM框架和基本数学理论1、SLAM分类1.1、基于传感器的分类1.2、基于后端的分类2、激光SLAM算法(基于优化的算法)2.1、激光SLAM算法的流程2.2、激光SLAM常用算法2.3、激光SLAM在实际环境中的问题3、激光SLAM算法介绍3.1、2D激光SLAM3.2、3D激光SLAM1、SLAM分类1.1、基于传感器的分类1.2、基于后端的分类 …

    2022年8月23日
    8
  • MapStruct 详解

    MapStruct 详解GitHub 访问地址 nbsp https github com mapstruct mapstruct 使用例子 nbsp https github com mapstruct mapstruct examples nbsp MapStrcut 与其它工具对比以及使用说明 http www tuicool com articles uiIRjai nbsp BeanUtils copyPro

    2026年3月17日
    2
  • Pycharm 输出中文或打印中文乱码现象的解决办法

    Pycharm 输出中文或打印中文乱码现象的解决办法使用 Pycharm 有时候会在 Console 终端输出乱码 比如下面这样 问题原因 这是什么原因呢 这是因为程序开始部分的编码不一致造成 比如说程序中使用 gbk 编码 coding gbk 但是 Pycharm 中确使用 utf 8 编码 并保存为 utf 8 的格式 解决办法 File setting FileEncoding ID

    2026年3月27日
    2
  • OAuth及OIDC技术分享PPT杂记

    OAuth及OIDC技术分享PPT杂记本文为整理 OAuth2 0 amp OIDC1 0 分享 PPT 过程的准备材料 有些杂 感兴趣的小伙伴可以挑感兴趣的章节看 整个文章脉络亦展示了作者对认证 OAuth2 0 OIDC1 0 的整个认知过程

    2026年3月26日
    3
  • O泡果奶-APK反编译-Lua脚本

    O泡果奶-APK反编译-Lua脚本O泡果奶-APK反编译-Lua脚本反编译出的代码(有注释)–main.lua–require(“import”)import(“android.app.*”)import(“android.os.*”)import(“android.widget.*”)import(“android.view.*”)import(“android.view.View”)import(“android.content.Context”)import(“android.media.MediaPlay

    2026年1月17日
    2
  • 全面详解Android实现多线程的几种方式(史上最全,最详细)

    全面详解Android实现多线程的几种方式(史上最全,最详细)一 目录 Android 多线程实现方式包括 二 基础使用 Android 多线程实现的基础使用包括 继承 Thread 类实现 Runnable 接口 Handler 接下来对各个进行分析 1 继承 Thread 类 1 1 简介 1 2 使用详解 1 使用步骤 2 具体使用 步骤 1 创建线程类 继承自 Thread 类 classMyThrea

    2026年3月17日
    2

发表回复

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

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