Spring的RestTemplate功能举例

复制代码
import com.google.common.collect.Maps;
import com.shein.dms.common.BasicCase;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.*;
import org.springframework.web.client.RestTemplate;
import org.testng.annotations.Test;

import java.util.HashMap;

/**
 * @author :gongxr
 * @description:测试RestTemplate 参考文档:https://github.com/itguang/springcloud-learn/tree/master/resttemplate-test
 */
@Slf4j
public class TestRestTemplate extends BasicCase {
    public String urlPath = "http://www.baidu.com";

    @Autowired
    RestTemplate restTemplate;

    UserEntity userEntity;

    @Test
    public void testGet() {
        ResponseEntity<String> responseEntity = restTemplate.getForEntity(urlPath, String.class);
        log.info(responseEntity.getBody());

        // 有参数的GET方法
        HashMap<String, String> map = new HashMap<>();
        map.put("id", "aaa");
        ResponseEntity<UserEntity> responseEntity2 = restTemplate.getForEntity("http://localhost/get/id={id}", UserEntity.class, map);
        UserEntity userEntity = responseEntity2.getBody();
    }

    @Test
    public void testGet2() throws Exception {
        String url = sysConfig.getDmsUrl() + "/dms/presets/logs?id=4486";
        // 消息头
        HttpHeaders headers = new HttpHeaders();
        headers.add("cookie", commonService.getDmsCookie2("关健"));
//        消息体
        HashMap<String, Object> bodyMap = Maps.newHashMap();
        HttpEntity httpEntity = new HttpEntity(bodyMap, headers);
//        发送请求
        ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.GET, httpEntity, String.class);
        log.info("请求地址:{}", url);
        log.info("消息头:{}", headers.toString());
        log.info("请求消息体:{}", httpEntity.getBody().toString());
        log.info("响应消息:{}", responseEntity.getBody());
    }

    @Test
    public void testPostDemo() throws Exception {
        String url = sysConfig.getDmsUrl() + "/dms/vmiAutoOrderSupplier/list";
        // 消息头
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.add("cookie", commonService.getDmsCookie2("关健"));
//        消息体
        HashMap<String, Object> bodyMap = Maps.newHashMap();
        bodyMap.put("title", "");
        bodyMap.put("pageNumber", 1);
        bodyMap.put("pageSize", 3);
        HttpEntity httpEntity = new HttpEntity(bodyMap, headers);
//        发送请求
        ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, httpEntity, String.class);
        log.info("请求地址:{}", url);
        log.info("消息头:{}", headers.toString());
        log.info("请求消息体:{}", httpEntity.getBody().toString());
        log.info("响应消息:{}", responseEntity.getBody());
    }

    @Data
    protected class UserEntity {
        private String name;
        private int age;
    }

}
复制代码

 

posted @   星瑞  阅读(46)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示