java调用webservice接口(.asmx)

前几天开发app时,需要调用其他系统的数据,该系统开发人员给我提供了webservice接口。对于从来没见过webservice接口的我,真的是一脸懵。现在把记录一下,方便自己以后用,说不定也能帮到正在看这篇文档的你。
首先需要确认,我这边写的是java后台直接调用webservice接口,并且接口后缀为asmx。
下面直接上代码:

    public static void main(String[] args){

        String url = "http://192.168.7.2:8000/Webservice1.asmx";// 提供接口的地址
        String soapaction = "http://tempuri.org/"; // 域名,这是在server定义的--不知道的可以问接口提供方,他们一并提供这个
        
        String pageSize = "5";
        String pageindex = "1";
        
        Service service = new Service();
        try{
            Call call = (Call) service.createCall();
            call.setTargetEndpointAddress(url);
            call.setOperationName(new QName(soapaction, "GetPatyOrganization")); // 设置要调用哪个方法
            call.addParameter(new QName(soapaction, "pageSize"), // 设置要传递的参数--要和接口方提供的参数名一致
                    org.apache.axis.encoding.XMLType.XSD_STRING,
                    javax.xml.rpc.ParameterMode.IN);
            call.addParameter(new QName(soapaction, "pageindex"), // 设置要传递的参数
                    org.apache.axis.encoding.XMLType.XSD_STRING,
                    javax.xml.rpc.ParameterMode.IN);
            call.setReturnType(new QName(soapaction, "GetPatyOrganization"), String.class); // 要返回的数据类型(自定义类型,我这边接口提供方给我返回的是json字符串,所以我用string类型接收。这个地方一定要设置好,不然各种报错很崩溃)

            call.setUseSOAPAction(true);
            call.setSOAPActionURI(soapaction + "GetPatyOrganization");

            String v = (String) call.invoke(new Object[] { pageSize, pageindex });// 调用方法并传递参数-传递的参数和设置的参数要对应,顺序不能搞错了

            System.out.print(v);//打印结果(我设置的接收格式为json字符串,这边直接打印出来)
        }catch (Exception ex){
            ex.printStackTrace();
        }  
    }

嗯,上面这段代码要想成功运行还需要加载几个jar包:

activation.jar
axis-1.4.jar
axis-jaxrpc-1.4.jar
commons-discovery-0.5.jar
commons-httpclient.jar
mail.jar
wsdl4j-1.6.3.jar

由于方法中用的几个接口都是上面几个jar包提供的,所以缺少jar会报错。jar包可以到maven仓库下载。jar包加好以后,main方法就可以直接运行啦~~~

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 106,346评论 12 127
  • WebService介绍 首先我们来谈一下为什么需要学习webService这样的一个技术吧.... 问题一 如果...
    Java3y阅读 7,215评论 5 137
  • ar包 用途axis.jar SOAP引擎包commons-discovery-0.2.jar 用来发现、查找和实...
    煮茶听雨阅读 1,018评论 0 2
  • 一、Java基础 1.写出下面代码的执行结果 2.写出下面代码的执行结果 3.写出下面代码的执行结果 (此题需写出...
    joshul阅读 188评论 0 1
  • 延续之前写的小说 炎和越。 炎的家族祖祖辈辈都是以土帮子为生,也就是俗称的土匪,可他家训都很崇拜敬重读...
    YangGuang海滩阅读 38评论 0 0