JAVA客户端调用SAP提供的接口(保姆级教程) | 您所在的位置:网站首页 › SAP与WMS接口功能开发说明书免费下载 › JAVA客户端调用SAP提供的接口(保姆级教程) |
目前接触到SAP提供了两种不同的接口,对应也有两种不同的调用方式:1.Restful接口,支持直接通过post请求调用;2.WSDL接口,需要使用SoapUI测试并生成代码调用。大家在对接前要先确认接口调用属于哪种方式,避免浪费时间。 一.WSDL/REST接口 1.构建认证请求头一般SAP提供的接口都需要账号密码验证,所以第一步根据提供的账号(username)和密码(password)生成认证请求头。 // 设置-授权信息 HttpHeaders headers = new HttpHeaders(); String basicStr = "Basic " + Base64.encodeBase64String((username + ":" + password).getBytes()); headers.add("Authorization", basicStr); 2.组装请求参数根据SAP提供的接口文档组装请求参数。这里可以使用map,也可以使用对象,建议使用对象,字段加上注释,养成良好的习惯。 P.S. ①组装的对象注意转换成JSON; ②SAP接口的字段是严格区分大小写的,以接口文档为准。 String request = JSONUtil.toJsonStr(data); 3.将请求参数和请求头放到请求体中 HttpEntity formEntity = new HttpEntity(request, headers); 4.使用http工具类请求接口我个人习惯用的是RestTemplat,大家可以随意使用自己喜欢的http工具类。 String response = restTemplate.postForObject(url, formEntity, String.class); 5.小结可以直接通过post请求的接口调用非常简单。大家调试的时候,也可以先生成认证头,直接通过postman或者apifox尝试调用。确保接口可以正常调通后,再实现调用代码。 WSDL/SOAP接口调用相对比较麻烦,需要用到SoapUI软件和axis。好在可以通过SoapUI软件自动生成接口调用生成代码,节省了很多时间。 1.下载SoapUI软件SoapUI是一个开源测试工具,通过soap/http来检查、调用、实现Web Service的功能/负载/符合性测试。 看下图,左边的是收费的,有14天的免费使用。建议直接选择右边的免费开源版本下载,安装过程全称傻瓜化,这里就不赘述了。 官网:https://www.soapui.org/ 官方下载页面:https://www.soapui.org/downloads/soapui/ Axis全称Apache Extensible Interaction System 即阿帕奇可扩展交互系统。Axis本质上就是一个SOAP引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。目前axis已推出axis2,有兴趣可以自行了解使用。 1.我用的是axis 1.4的版本,进入axis 1.4下载页面后,按下图选择对应的压缩包下载。 2.将压缩包解压到任意目录下,注意不要包含中文。 Apache Axis:https://axis.apache.org/axis/ Apache Axis 1.4 下载页面:https://archive.apache.org/dist/ws/axis/1_4/ P.S. ① 如果接口需要账号密码认证,需要在左下角的窗口中填入账号和密码; ② 部分SAP接口在内网和外网请求的地址不同,需要确认请求地址,并修改Request请求的URL地址。 Java客户端调用接口代码已经自动生成,但是使用前还有2个地方需要调整。 1.引入axis-1.4的依赖 axis axis 1.4 2.在生成的代码中设置账号和密码自动生成的Java文件中有一个以Stub结尾的Java文件,找到createCall()这行代码的位置,设置账号和密码的值。 org.apache.axis.client.Call _call = createCall(); _call.setUsername(username); _call.setPassword(password); 3.组装data请求参数,调用对应的locator类的getHTTP_Port()方法获取远程调用接口,直接调用接口内的方法即可 XXXServiceLocator locator = new XXXServiceLocator(); XXX xxx = locator.getHTTP_Port(); ResponseDataItems[] responseDataItems = xxx.XXX(data); 7.小结WSDL/SOAP接口的调用,对于初次接触的人来说相对比较麻烦。但其实总结起来只需要三步:1.先用SoapUI工具调通接口;2.结合axis自动生成客户端代码;3.调用生成的类和方法。 三.总结1.WSDL/REST接口调用就是Restful风格的HTTP请求,比较简单,只需要注意生成认证头即可; 2.WSDL/SOAP接口的调用相对比较麻烦,但是可以通过使用SoapUI工具+Axis可以极大的简化开发,在使用一次后就可以很快上手。 |
CopyRight 2018-2019 实验室设备网 版权所有 |