Java工具类:使用RestTemplate请求WebService接口

这篇具有很好参考价值的文章主要介绍了Java工具类:使用RestTemplate请求WebService接口。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


一、场景

对接第三方提供的WebService接口,早期的调用方式过于复杂繁琐,所以使用RestTemplate进行调用


二、工具类

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;
    }
}


注:除了RestTemplate之外,HttpURLConnection等也可以用来调用webservice接口

如果需要将xml转为Json,可参考:文章来源地址https://www.toymoban.com/news/detail-815391.html

到了这里,关于Java工具类:使用RestTemplate请求WebService接口的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • java使用RestTemplate发送Get请求

    使用RestTemplate的 getForObject() 或 getForEntity() , getForObject() 只有响应体, getForEntity() 包含HTTP响应的全部信息,以常用的 getForObject() 为例: 传入两个参数:1. url 2. 响应数据类型 这里演示了以字符串形式接收get响应的例子: 需要注意的是,当get请求的接口响应的 Content-Type 是

    2024年02月15日
    浏览(48)
  • RestTemplate 请求https接口,无需证书访问,并整合工具类,细到极致

      Hello,大家好呀,我是你们的Jessica老哥,不知不觉,到了3月份了,又是一年一度的金三银四,老哥和大家一样,想换工作,于是呢,更新资料,投简历。试想着把自己的劳动价值卖的更高一点。   没想到,今年好像行情有点不太对劲呀,往年跟HR打个招呼,人家还会要你

    2024年02月08日
    浏览(44)
  • 使用axis调用WebService,Java WebService调用工具类

    概述 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件,就可相互交换数据或集成。依据 WebService 规范实施的应用之间,无论它们所使用的语言、平台或内部协议是什么,都可以相互交换数据。 也就是说可以实现多语言、跨平台数据交互。 引入

    2024年01月17日
    浏览(37)
  • java调用webService接口

    1、需求: 由于业务需求对接一个比较老的平台使用到了webService接口,这里记录一下调用方法。 一般有三种方式调用webService接口, 1.1、以HttpURLConnection的方式调用 1.2、使用apache-cxf生成java类调用 1.3、使用AXIS调用WebService 我这边主要是使用的是,第三种,使用AXIS调用WebServi

    2024年02月05日
    浏览(38)
  • java基于RestTemplate的微服务发起http请求

    实现的效果

    2024年02月05日
    浏览(35)
  • Java请求Http接口-OkHttp(超详细-附带工具类)

    简介:OkHttp是一个默认有效的HTTP客户端,有效地执行HTTP可以加快您的负载并节省带宽,如果您的服务有多个IP地址,如果第一次连接失败,OkHttp将尝试备用地址。这对于IPv4 + IPv6和冗余数据中心中托管的服务是必需的。OkHttp启动具有现代TLS功能(SNI,ALPN)的新连接,并在握手

    2024年02月12日
    浏览(33)
  • java中http请求之restTemplate配置超时时间(亲测有用!)

    问题: http请求发起后接收不到返回数据!!!【测试环境没出问题,发到正式环境就有问题】 项目中通过restTemplate发起请求: 打印日志1内容为: http请求入参:{data=[{ productStatus=10,skuCode=null}], messageId=ewpfpr1t6ey5r6qj0su0w1h6rt73hr,token=vgvU5EJKuZbuHii7WH6pTINp40ZRicaqLz4dq5P7L6pDzWir8EEGZhCKPuc

    2024年02月11日
    浏览(32)
  • 用Java调用C#的WebService接口

    这是一个用Java调用C#版程序的例子,废话不多说,上代码: C#接口代码: Java调用这个Webservice中的Add方法和HelloWorld方法: 1.有参方法:Add 运行,结果返回:Result:3 2.无参方法:HelloWorld 可以看到,调用无参的webservice和有参的基本相同,不过无参调用时,不需要调用Call的ad

    2024年02月12日
    浏览(47)
  • 【Java】利用SpringBoot搭建WebService服务接口

    在项目开发过程中经常会碰到对接医疗软件系统的时候对方要求提供WebService形式的接口,本篇文章记载了个人对接项目过程中整合并搭建的WebService形式的接口,希望对您能够有所帮助! 代码如下: 代码如下(示例): 代码如下(示例): 提示:其中的@WebParam(name=\\\"ROOT\\\")

    2024年02月05日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包