首页 > 其他分享 >RestTemplate exchange GET POST请求传参数DEMO

RestTemplate exchange GET POST请求传参数DEMO

时间:2024-11-27 22:21:59浏览次数:5  
标签:String exchange DEMO GET new reqUrl org import response

RestTemplate exchange GET POST请求传参数DEMO

link:
Illegal character ((CTRL-CHAR, code 31))问题排查 gzip接口返回 RestTemplate GET POST请求
https://www.cnblogs.com/oktokeep/p/16769602.html

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpMethod;
import org.springframework.http.MediaType;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;

import java.util.HashMap;
import java.util.Map;

@Service
public class RestTemplateRemoteService {
    @Autowired
    private RestTemplate restTemplate;

    private static final Logger logger = LoggerFactory.getLogger(RestTemplateRemoteService.class);

    /**
     * 新增记录接口
     * @param violationAdditionRequestVO
     * @return
     */
    public ResponseData save(AdditionRequestVO additionRequestVO) {
        String wzServiceUrl = "http://xxx";

        String reqUrl = wzServiceUrl + "/public/order/add";
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
        String reqJson = new Gson().toJson(additionRequestVO);
        logger.info("remote save url=[{}],params=[{}]",reqUrl,reqJson);
        HttpEntity<String> httpEntity = new HttpEntity<String>(reqJson, httpHeaders);
        ParameterizedTypeReference<ResponseData> typeRef = new ParameterizedTypeReference<ResponseData>() {
        };
        try {
            ResponseData response  = restTemplate.exchange(reqUrl, HttpMethod.POST, httpEntity, typeRef).getBody();
            logger.info("remote save url=[{}],result=[{}]",reqUrl,new Gson().toJson(response));
            return response;
        }catch(Exception e) {
            logger.error("新增接口异常:", e);
        }
        return null;
    }


    public MyDepositResVO getInfo(String orderNo) {
        String wzServiceUrl = "http://xxx";

        String reqUrl = wzServiceUrl + "/public/order/get?orderNo="+orderNo;
        HttpHeaders httpHeaders = new HttpHeaders();
        httpHeaders.setContentType(MediaType.APPLICATION_JSON_UTF8);
        
        //GET请求方式,直接跟在url参数后面拼接
//        Map<String, Object> reqMap = new HashMap<>();
//        reqMap.put("orderNo", orderNo);
//        String reqJson = new Gson().toJson(reqMap);

        logger.info("remote getInfo url=[{}],params=[{}]",reqUrl,orderNo);
        HttpEntity<String> httpEntity = new HttpEntity<String>(null, httpHeaders);
        ParameterizedTypeReference<ResponseData<MyDepositResVO>> typeRef = new ParameterizedTypeReference<ResponseData<MyDepositResVO>>() {
        };
        try {
            ResponseData response  = restTemplate.exchange(reqUrl, HttpMethod.GET, httpEntity, typeRef).getBody();
            logger.info("remote getInfo url=[{}],result=[{}]",reqUrl,new Gson().toJson(response));
            if(response != null && ErrorCode.SUCCESS.getCode().equals(response.getResCode())){
                return (MyDepositResVO) response.getData();
            }
        }catch(Exception e) {
            logger.error("查询接口异常:", e);
        }
        return null;
    }

}


//
public class ResponseData<T>  {
    @AutoDocProperty("返回代码")
    private String resCode;
    @AutoDocProperty("返回消息")
    private String resMsg;
    @AutoDocProperty("返回实体")
    private T data;
}

 

标签:String,exchange,DEMO,GET,new,reqUrl,org,import,response
From: https://www.cnblogs.com/oktokeep/p/18573224

相关文章

  • LLMs Learn Task Heuristics from Demonstrations: A Heuristic-Driven Prompting St
    1.概述关于基于COT的Prompt构造有很多的研究,例如:CoT(Weietal.,2022),Automate-CoT(Shumetal.,2023),Auto-CoT(Zhangetal.,2023),Iter-CoT(Sunetal.,2023),Active-CoT(Diaoetal.,2023)。本篇文章尝试给出了一种解释:LLM基于有监督的ICL(in-contextlearni......
  • c++QTableWidget横向填充满他的空间,且均匀分布
    1.概要//设置所有列均匀分布并填充满整个空间QHeaderView*header=tableWidget->horizontalHeader();for(inti=0;i<tableWidget->columnCount();++i){header->setSectionResizeMode(i,QHeaderView::Stretch);}2.内容在Qt中,如果你希望......
  • 当使用docker命令时:docker images ....... ,结果出现了Error response from daemon:
    当使用docker命令时:dockerimages.......,结果出现了Errorresponsefromdaemon:Get"https://registry-1.docker.io/v2/":proxyconnecttcp:dialtcp:lookuphttpon127.0.0.1:53:nosuchhost这种情况一般是:意味着文件无法被写入,可能是由于权限不足、文件不存在、......
  • component 'rust-std' for target 'aarch64-linux-android' is up to date
    lipan@ubuntu:~/rustdesk$rustuptargetaddaarch64-linux-androidinfo:component'rust-std'fortarget'aarch64-linux-android'isuptodate出现这种错误:首先设置androidsdk的路径:exportANDROID_NDK_HOME=/home/lipan/android-ndk-r23c然后使用......
  • getent使用小结
    转载请注明出处:getent 是一个用于访问系统数据库的命令,通常用于获取与网络有关的信息,比如用户、组、主机名、服务等。这个命令是Linux和Unix系统中非常有用的工具,可以用来查询多种数据库,无需进行直接的配置文件查找。getent命令特性多种数据库支持:getent 可以访问......
  • 用友U8CRM ajaxgetborrowdata.php下多方法sql注入漏洞复现
    0x01产品描述:     用友U8CRM‌是用友ERP-U8的重要组成部分,提供全面的客户关系管理功能,包括客户管理、意向管理、商机管理、活动管理、费用管理、竞争管理、销售文档管理等‌1。它支持长销售周期企业以漏斗为核心的SFA(销售自动化)管理和重复购买企业以金字塔为核心的......
  • Electron系列 -- vue项目打包成.exe文件(通过官方demo的方式)
    一.拉取官方demo(electron-quick-start)//将electron官网中的 electron-quick-start 拉取到本地 git clone https://github.com/electron/electron-quick-start  安装成功的目录如下  2.安装好后,用vscode(SublimeTex等工具)打开,新建终端,输入下面的命令。初始......
  • [Javascript] About private access (Object.getOwnPropertySymbols)
    Wehaveamodule:constkey=Symbol('key')exportclassA{[key]=1value(){console.log(this[key])}}Itseemsthat keyisnotexposetooutsideofmodule,butstillweareabletogetit.import{A}from'./mod......
  • Phaser.js开发简单的2d小游戏demo
    初次发布于我的个人文档1.安装使用如下的命令之一就可以获取工程费的phaser项目。npmcreate@phaserjs/game@latestnpx@phaserjs/create-game@latestyarncreate@phaserjs/gamepnpmcreate@phaserjs/game@latestbuncreate@phaserjs/game@latest或者使用npminstal......
  • GET、POST、PUT 的区别与使用场景详解
    大家好,我是小黄。在现代Web开发中,GET、POST和PUT是常用的HTTP请求方法,每种方法都对应不同的用途。理解它们的作用和使用场景,不仅能让接口设计更加清晰,还能提升系统的可维护性。本文将以简洁易懂的方式带你了解这些HTTP方法。1.什么是HTTP方法?HTTP方法是客户端与服务......