zoukankan      html  css  js  c++  java
  • JAVA 使用RestTemplate发送post请求

    前言 要请求的接口

     

    1、service实现层示例代码

    import com.alibaba.fastjson.JSON;
    import com.alibaba.fastjson.JSONObject;
    import lombok.extern.slf4j.Slf4j;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.http.HttpEntity;
    import org.springframework.http.HttpHeaders;
    import org.springframework.http.ResponseEntity;
    import org.springframework.stereotype.Service;
    import org.springframework.web.client.RestClientException;
    import org.springframework.web.client.RestTemplate;
    
    
    
    @Service
    @Slf4j
    public class TestServiceImpl implements TestService {
    
        @Autowired
        private RestTemplate restTemplate;
    
        private final String URL = "http://15.15.82.127:8124/api/test/getData";
    
        private final String USER_NAME = "test";
    
        private final String PASS_WORD = "test123";
    
        @Override
        public String getData(){
            //1、构建body参数
            JSONObject jsonObject = new JSONObject();
            jsonObject.put("UserName",USER_NAME);
            jsonObject.put("Password",PASS_WORD);
    
            //2、添加请求头
            HttpHeaders headers = new HttpHeaders();
            headers.add("Content-Type","application/json");
    
            //3、组装请求头和参数
            HttpEntity<String> formEntity = new HttpEntity<String>(JSON.toJSONString(jsonObject), headers);
    
            //4、发起post请求
            ResponseEntity<String> stringResponseEntity = null;
            try {
                stringResponseEntity = restTemplate.postForEntity(URL, formEntity, String.class);
                log.info("ResponseEntity----"+stringResponseEntity);
            } catch (RestClientException e) {
                e.printStackTrace();
            }
    
            //5、获取http状态码
            int statusCodeValue = stringResponseEntity.getStatusCodeValue();
            log.info("httpCode-----"+statusCodeValue);
    
            //6、获取返回体
            String body = stringResponseEntity.getBody();
            log.info("body-----"+body);
    
            //7、映射实体类
            Wrapper wrapper = JSONObject.parseObject(body, Wrapper.class);
            String data = wrapper.getData();
            log.info("data-----"+data);
    
            return data;
        }
    
    
    }

    2、service接口层

    public interface TestService {
        String getData();
    }

    3、实体类

    安利一个json转实体类工具网站  https://www.bejson.com/json2javapojo/new/ 

    public class Wrapper {
    
        private String Code;
        private String Message;
        private String Data;
    
        public void setCode(String Code) {
            this.Code = Code;
        }
        public String getCode() {
            return Code;
        }
    
        public void setMessage(String Message) {
            this.Message = Message;
        }
        public String getMessage() {
            return Message;
        }
    
        public void setData(String Data) {
            this.Data = Data;
        }
        public String getData() {
            return Data;
        }
    
    }

    4、运行日志如下:

  • 相关阅读:
    Robocode教程4——Robocode的游戏物理
    JAVA:获取系统中可用的字体的名字
    Robocode游戏规则
    Robocode教程2——你的第一个robo,取个好名字哦
    Robocode教程1——安装、运行、配置
    第二十四章 异常和错误处理 6异常类与模板的关系 简单
    第二十四章 异常和错误处理 5异常类的虚函数 简单
    第二十三模板 18.4算法类 简单
    解决不能通过'/tmp/mysql.sock'连到服务器 简单
    第二十四章 异常和错误处理 4创建异常类的成员函数 简单
  • 原文地址:https://www.cnblogs.com/guliang/p/15671565.html
Copyright © 2011-2022 走看看