1. 程式人生 > 其它 >spring restTemplate 傳送post請求攜帶引數和請求頭

spring restTemplate 傳送post請求攜帶引數和請求頭

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;
    }


}