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、组装请求头和参数 HttpEntityformEntity = 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、运行日志如下: