目录
-
- 一、场景
- 二、工具类
一、场景
对接第三方提供的
二、工具类
package com.xxx.util; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.http.HttpEntity; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; import org.springframework.web.client.RestTemplate; /** * WebService请求工具类 * * @author hcs * * @date 2024/1/19 11:18 */ public class WebServiceRequestUtil { private static Logger logger = LoggerFactory.getLogger(WebServiceRequestUtil.class); private static RestTemplate restTemplate = SpringUtil.getBean(RestTemplate.class); /** * 发起webservice请求 * * @param url * @return */ public static String webServiceRequest(String url) { // 创建一个请求头对象 HttpHeaders headers = new HttpHeaders(); // 设置请求头对象contentTyp的为text/xml;charset=UTF-8 MediaType type = MediaType.parseMediaType("text/xml;charset=UTF-8"); headers.setContentType(type); // 将请求参数进行封装并进行远程接口服务调用 // 构造webservice请求参数 // 请求参数,根据实际情况进行配置,以下仅作为示例 StringBuilder requestData = new StringBuilder(); requestData.append("<?xml version="1.0" encoding="utf-8"?>"); requestData.append("<soapenv:Envelope xmlns:soapenv="http://根据实际情况配置" xmlns:esb="http://根据实际情况配置">"); requestData.append("<soapenv:Header/>"); requestData.append("<soapenv:Body>"); // 请求参数,根据实际情况进行配置,以下仅作为示例 requestData.append("<ESB_USER>").append("zhangsan").append("</ESB_USER>"); requestData.append("<ESB_PWD>").append("123456").append("</ESB_PWD>"); requestData.append("</soapenv:Body>"); requestData.append("</soapenv:Envelope>"); logger.info("请求报文为:" + requestData.toString()); logger.info("url:" + url); try { // 创建请求 HttpEntity<String> request = new HttpEntity<>(requestData.toString(), headers); // 发送post请求并获取到响应结果 String str = restTemplate.postForObject(url, request, String.class); logger.info("-----------Response content-----------: " + str); return str; } catch (Exception e) { logger.error("baseWebServiceRequest出现异常:" + e.getMessage(), e); } return null; } }
注:除了
如果需要将xml转为Json,可参考:http://t.csdnimg.cn/thZzN