以Http方式调用WebService接口

以Http方式调用WebService接口

场景:公司需要第三方流水的数据,三方系统接口对外的形式是webservice的接口,而公司的系统没有webservice模块,以http调用接口非常的方便实用。

调用方式:HTTPClient

HttpClient方式调用webservice api

public static String doPostWebServiceURL(String point, String xmlParams, String soapAction)throws Exception {
        String result = "";
        // 创建HttpClientBuilder
        HttpClientBuilder httpClientBuilder = HttpClientBuilder.create();
        // HttpClient
        CloseableHttpClient closeableHttpClient = httpClientBuilder.build();
        HttpPost httpPost = new HttpPost(point);
        try {
            httpPost.setHeader("Content-Type", "text/xml;charset=UTF-8");
            httpPost.setHeader("SOAPAction", soapAction);
            StringEntity data = new StringEntity(xmlParams,
                    Charset.forName("UTF-8"));
            httpPost.setEntity(data);
            CloseableHttpResponse response = closeableHttpClient
                    .execute(httpPost);
            HttpEntity httpEntity = response.getEntity();
            if (httpEntity != null) {
                result = EntityUtils.toString(httpEntity, "UTF-8");
            }
        } catch (Exception e) {
            log.error("调用远程WebService接口异常:{}" , e);
            throw e;
        }finally {
            IOUtils.closeQuietly(closeableHttpClient);
        }
        return result;
    }

业务代码:

拼接参数

String params = "<UPDATEDATEBEGIN>"+req.getUpdateDateBegin()+"</UPDATEDATEBEGIN>" +
                    "<UPDATEDATEEND>"+req.getUpdateDateEnd()+"</UPDATEDATEEND>" +
                    "<PAGEINDEX>"+req.getPageIndex()+"</PAGEINDEX>" +
                    "<PAGESIZE>"+req.getPageSize()+"</PAGESIZE>";   //必传参数拼接
String URI = systemParamService.getSystemParam("SYNC_PULL_FUND_DATA_URL");  //获取系统参数
String xmlResp = null;
try {
	xmlResp = doPostWebServiceURL(URI, xmlParams);
	//解析xml  dom方式
	String returnMessageXml = StringEscapeUtils.unescapeXml(xmlResp);
	Document doc = DocumentHelper.parseText(returnMessageXml);
	Element rootElement = doc.getRootElement();
	Element datasElement = rootElement.element("Body").element("sendResponse").element("returnMessage").element("XERP").element("BODY");
	List<Element> elements = (List<Element>)datasElement.elements();  //获取到返回的参数list
	......
}catch(){
	......
}
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java调用WebService接口有多种方式,以下是其中两种常见的方式: 1. 使用JAX-WS (Java API for XML Web Services):JAX-WS是Java EE的一部分,它提供了一种简单的方式来开发和调用WebService接口。你可以使用wsimport工具根据WSDL(Web Services Description Language)文件生成客户端代码,并使用该代码调用WebService接口。下面是一个简单的示例代码: ```java import com.example.webservice.HelloWorld; import com.example.webservice.HelloWorldService; public class WebServiceClient { public static void main(String[] args) { HelloWorldService service = new HelloWorldService(); HelloWorld port = service.getHelloWorldPort(); String result = port.sayHello("John"); System.out.println(result); } } ``` 2. 使用Apache CXF:Apache CXF是一个开源的WebService框架,它提供了丰富的功能和灵活的配置选项。你可以使用CXF的工具生成客户端代码,并使用该代码调用WebService接口。下面是一个简单的示例代码: ```java import com.example.webservice.HelloWorld; public class WebServiceClient { public static void main(String[] args) { HelloWorld service = new HelloWorld(); HelloWorld port = service.getHelloWorldPort(); String result = port.sayHello("John"); System.out.println(result); } } ``` 这只是两种常见的方式之一,实际上还有其他的方式可以调用WebService接口,如使用Spring Web Services等。具体选择哪种方式取决于你的需求和项目的情况。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值