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 formEntity = new HttpEntity(JSON.toJSONString(jsonObject), headers);

        //4、发起post请求
        ResponseEntity 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、运行日志如下: