Java调用WebService接口之利用hutool工具包实现

最近要对接金蝶财务系统,对方提供了一个webService接口。而且测试接口地址还是内网的,每改一处代码都要部署堡垒机去测试,光是一个登录接口就花了我两天时间很是无语(主要是接口文档地址不会看)

接口的地址大就是这种,以wsdl结尾的

图一:

打开这个接口地址之后里面就是接口方法以及接口调用参数

图二:

相信看到这,大家都有点蒙,不知如何下手,今天就以我的亲身经历告诉大家如何解决这种问题(hutool)是个好东西

图三:

解析后的内容就是这种

图四:

<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:log="http://login.webservice.bos.kingdee.com">
   <soapenv:Header/>
   <soapenv:Body>
      <log:login soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
         <userName xsi:type="xsd:string">"21"</userName>
         <password xsi:type="xsd:string">21@2022</password>
         <slnName xsi:type="xsd:string">eas</slnName>
         <dcName xsi:type="xsd:string">21</dcName>
         <language xsi:type="xsd:string">l2</language>
         <dbType xsi:type="xsd:int">1</dbType>
      </log:login>
   </soapenv:Body>
</soapenv:Envelope>

下面是Java代码

@GetMapping("/test6")
    public R test6(){
        Map<String,Object> map=new HashMap<>();
        map.put("userName","user");
        map.put("password","kduser@2022");
        map.put("slnName","eas");
        map.put("dcName","gxlqtest");
        map.put("language","L2");
        map.put("dbType",1);

        SoapClient client = SoapClient.create("http://192.168.15.56:9191/ormrpc/services/EASLogin")
            // 设置要请求的方法,此接口方法前缀为web,传入对应的命名空间
            .setMethod("log:login", "http://login.webservice.bos.kingdee.com")
            .setParams(map,false).header("SOAPAction","application/soap+xml;charset=utf-8 ");
            // 设置参数,此处自动添加方法的前缀:web

        // 发送请求,参数true表示返回一个格式化后的XML内容
        // 返回内容为XML字符串,可以配合XmlUtil解析这个响应
        client.sendForResponse().getCookie("JSESSIONID");
        log.info(client.sendForResponse().toString());
        return R.ok();

    }

上面传参的内容可以参考图四,map是要传入的参数

调用成功之后就会返回下图获取sessionId,我们还可以获取cookie等参数,具体要根据你们的业务来获取即可

到此处就算是调用成功了,后面如遇到其他问题还会继续更新此文章的!希望对大家有所帮助,少走些弯路!

经验分享 程序员 微信小程序 职场和发展