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

  • 相关阅读:
    LeetCode 382. Linked List Random Node
    LeetCode 398. Random Pick Index
    LeetCode 1002. Find Common Characters
    LeetCode 498. Diagonal Traverse
    LeetCode 825. Friends Of Appropriate Ages
    LeetCode 824. Goat Latin
    LeetCode 896. Monotonic Array
    LeetCode 987. Vertical Order Traversal of a Binary Tree
    LeetCode 689. Maximum Sum of 3 Non-Overlapping Subarrays
    LeetCode 636. Exclusive Time of Functions
  • 原文地址:https://www.cnblogs.com/guliang/p/15671565.html
Copyright © 2011-2022 走看看