• 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、运行日志如下:

  • 相关阅读:
    HTML超链接应用场景
    String 字符串和StringBuffer的知识点总结
    猜数游戏代码
    MemoryLayout
    偏swift框架
    git的使用
    寄存器
    swift基础
    枚举
    安装Ubuntu 20.04 以后
  • 原文地址:https://www.cnblogs.com/guliang/p/15671565.html
Copyright © 2020-2023  润新知