springboot使用restTemplate调用webservice接口

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

1.首先确定wsdl的http地址,使用postman测试接口是否成功

resttemplate调用webservice接口,java,springboot,restTemplate,postman,测试工具 在浏览器输入webservice地址可以找到相应的请求和响应示例。

resttemplate调用webservice接口,java,springboot,restTemplate,postman,测试工具

 

 如果postman返回了正确的数据,就说明测试成功!

2.接下来代码:文章来源地址https://www.toymoban.com/news/detail-793773.html

package com.test;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONException;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.poi.ss.formula.functions.T;
import org.json.XML;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;

@Slf4j
@Service
/**
* @author "qs"
*/
public class webTest{

    @Autowired
    private RestTemplate restTemplate;

    public void getData() {
        HttpHeaders headers = new HttpHeaders();
        MediaType type = MediaType.parseMediaType("text/xml;charset=UTF-8");
        // 设置请求头对象contentTyp的为text/xml;charset=UTF-8
        headers.setContentType(type);
        StringBuffer soapRequestData = new StringBuffer("");
        soapRequestData.append("<soap:Envelope xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:soap=\"http://schemas.xmlsoap.org/soap/envelope/\">");
        soapRequestData.append("<soap:Body>");
        soapRequestData.append("<GetData xmlns=\"http://localhost/\" />");
        soapRequestData.append("</soap:Body>");
        soapRequestData.append("</soap:Envelope>");
        String url = "你的地址";
        String responseStr = exchangeForEntity(headers, soapRequestData + "", url, HttpMethod.POST, null);
        String tmpStr = StringEscapeUtils.unescapeXml(responseStr);
        if (StringUtils.isNotBlank(tmpStr)) {
            org.json.JSONObject xmlJSONObj = null;
            try {
                xmlJSONObj = XML.toJSONObject(tmpStr);
            } catch (JSONException e) {
                e.printStackTrace();
            }
            if (xmlJSONObj != null) {
               //处理数据
               System.out.println(JSON.toJSONString(xmlJSONObj));
            }
        }
    }

    /**
     * 执行http请求
     *
     * @param headers
     * @param params
     * @param url
     * @param method
     * @param mediaType
     * @param <T>       MultiValueMap<String, String>  JSONObject  Map
     * @return
     */
    public <T> String exchangeForEntity(HttpHeaders headers, T params, String url, HttpMethod method, MediaType mediaType) {
        //设置请求头
        if (mediaType != null) {
            headers.setContentType(mediaType);
        }
        HttpEntity<T> requestEntity = new HttpEntity<>(params, headers);
        //  执行HTTP请求
        ResponseEntity<String> response = restTemplate.exchange(url, method, requestEntity, String.class);
        return response.getBody();
    }
}

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

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

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

相关文章

  • SpringBoot中的RestTemplate使用笔记

    以下代码是基于SpringBoot2.4.2版本写的案例 需要配置的application.yml如下 restTemplate日志拦截器 定义一些API接口 测试使用RestTemplateUtil

    2024年02月15日
    浏览(49)
  • SpringBoot中RestTemplate的使用备忘

    2-1 引入Maven依赖 2-2 创建 RestTemplate 配置类,设置连接池大小、超时时间、重试机制等等。 4-1 使用示例 4-2 参数传递的几种方式 5-1 使用示例 5-2 参数传递的几种方式 6-1 使用示例 6-2 设置 url 参数,同Get请求 7-1 使用示例,和postForObject()基本相似,返回的是ResponseEntity罢了 7-2 设置

    2024年02月02日
    浏览(41)
  • SpringBoot 使用 RestTemplate 发送 binary 数据流

    情况说明: 接口A接受到一个数据流,在postman里的传输方式显示如下: 接口A接受到这个数据流之后,需要转发到接口B进行处理。 这里要注意一点是: postman图中的这种方式和MultipartFile流的传输方式不同,MultipartFile流方式,是在body的form表单中进行传输,需要指定一个key,这

    2024年02月12日
    浏览(41)
  • SpringBoot | RestTemplate异常处理器ErrorHandler使用详解

    关注wx:CodingTechWork   在代码开发过程中,发现很多地方通过 RestTemplate 调用了第三方接口,而第三方接口需要根据某些状态码或者异常进行重试调用,此时,要么在每个调用的地方进行异常捕获,然后重试;要么在封装的 RestTemplate 工具类中进行统一异常捕获和封装。当然

    2024年02月12日
    浏览(43)
  • 【SpringBoot】springboot使用RestTemplate 进行http请求失败自动重试

    我们的服务需要调用别人的接口,由于对方的接口服务不是很稳定,经常超时,于是需要增加一套重试逻辑。这里使用 Spring Retry 的方式来实现。 一、引入POM 二、 修改启动类 在Spring Boot 应用入口启动类,也就是配置类的上面加上 @EnableRetry 注解,表示让重试机制生效。 注意

    2024年02月08日
    浏览(44)
  • SpringBoot之RestTemplate使用Apache的HttpClient连接池

    SpringBoot自带的RestTemplate是没有使用连接池的,只是SimpleClientHttpRequestFactory实现了ClientHttpRequestFactory、AsyncClientHttpRequestFactory 2个工厂接口,因此每次调用接口都会创建连接和销毁连接,如果是高并发场景下会大大降低性能。因此,我们可以使用Apache的HttpClient连接池。

    2024年02月11日
    浏览(44)
  • SpringCloud入门——微服务调用的方式 & RestTemplate的使用 & 使用nacos的服务名初步(Ribbon负载均衡)

    1.微服务调用的几种方式,异步消息传递,http调用,服务网关调用,服务发现调用nacos; 2.spring提供的restTemplate,发送HTTP请求的客户端工具类; 3.nacos使用服务名报错,需要加Ribbon负载均衡; RPC (Remote Procedure Call)远程过程调用协议,一种通过网络从远程计算机上请求服务,

    2024年02月10日
    浏览(41)
  • 微服务—远程调用(RestTemplate)

              在微服务的所有框架中,SpringCloud脱颖而出,它是目前国内使用的最广泛的微服务框架   (官网地址),它集成了各种微服务功能组件,并基于SpringBoot实现了这些组件的自动装配,从而提供了良好的开箱即用的体验 服务拆分注意事项: 单一职责:不同的微服务,

    2024年02月12日
    浏览(39)
  • RestTemplate调用Http方法

     场景:前端调用后端的接口完成设备参数的更新,后端在接口代码中需要调用设备端提供的接口来完成设备参数的更新。 RestTemplate 是用于同步client端访问 Restful 服务的一个核心类 默认使用 JDK 提供的包去建立HTTP连接 为每种 HTTP 请求都实现了相关的请求封装方法,根据HTTP的

    2024年01月17日
    浏览(41)
  • 【spring Cloud】微服务通信的三种方式RestTemplate、Feign远程调用与Dubbo的使用

    目录 一、通过RestTemplate调用微服务 二、通过Feign远程调用 三、Dubbo  分布式中的远程调用大概分为两种 RESTful接口  REST,即Representational State Transfer的缩写,如果一个架构符合REST原则,就称它为RESTful架构。 每一个URI代表一种资源; 客户端和服务器之间,传递这种资源的某种

    2024年04月11日
    浏览(48)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包