Java调用WebService接口
在实际开发工作中,会遇到接口对接的场景,有直接HTTP调用方式,参数体为JSON串;还有一种是SOAP方式,即webService接口。
首先,可以在浏览器上安装一个插件(Wizdler),如下图。
通过这个插件,我们可以轻松的看到所有的方法
点击方法,可以直接生成对应的请求参数,替换相关参数,可以直接调用方法;
下面来讲一下如何使用Java代码实现接口的调用;
@Test public void test(){ try{ String webServiceUrl = "http://238.62.169.140:8090/g6_venues/webservice/gtv-external-venues-service?wsdl"; JaxWsDynamicClientFactory factory1 = JaxWsDynamicClientFactory.newInstance(); Client client = factory1.createClient(webServiceUrl); HTTPConduit conduit = (HTTPConduit)client.getConduit(); HTTPClientPolicy clientPolicy = new HTTPClientPolicy(); //连接超时 clientPolicy.setConnectionTimeout(2000); //取消块编码 clientPolicy.setAllowChunking(false); //响应超时 clientPolicy.setReceiveTimeout(12000); conduit.setClient(clientPolicy); String startDateTime = "20201018090000"; String endDateTime = "20201228160000"; Object[] result = client.invoke("queryFreeRoomInfo",startDateTime ,endDateTime ); //queryFreeRoomInfo为方法名; System.out.println("返回结果:" + result[0].toString()); }catch (Exception e){ e.printStackTrace(); } }
JaxWsDynamicClientFactory、HTTPConduit、Client、HTTPClientPolicy需要引入对应的依赖,