RestTemplate 简单使用(笔记)

清疚 2022-11-27 00:41 223阅读 0赞

get

  1. public static void get(){
  2. RestTemplate restTemplate = new RestTemplate();
  3. //不带参数get
  4. Notice notice = restTemplate.getForObject("http://localhost:8088/rest/notice",Notice.class);
  5. System.out.println(notice.toString());
  6. //带参数get (占位符)
  7. notice = restTemplate.getForObject("http://localhost:8088/rest/{1}/{2}",Notice.class,"hello",5);
  8. System.out.println(notice.toString());
  9. //带参数get (map)
  10. Map<String,String> map = new HashMap();
  11. map.put("start1","6");
  12. map.put("page2","5");
  13. notice = restTemplate.getForObject("http://localhost:8088/rest/page?start={start1}&page={page2}",Notice.class,map);
  14. System.out.println(notice.toString());
  15. }
  16. /**
  17. * 只是返回参数和get不一样
  18. */
  19. public static void entity(){
  20. RestTemplate restTemplate = new RestTemplate();
  21. //不带参数get
  22. ResponseEntity<Notice> notice = restTemplate.getForEntity("http://localhost:8088/rest/notice",Notice.class);
  23. System.out.println(notice.getBody().toString());
  24. //带参数get (占位符)
  25. notice = restTemplate.getForEntity("http://localhost:8088/rest/{1}/{2}",Notice.class,"hello",5);
  26. System.out.println(notice.getBody().toString());
  27. //带参数get (map)
  28. Map<String,String> map = new HashMap();
  29. map.put("start1","6");
  30. map.put("page2","5");
  31. notice = restTemplate.getForEntity("http://localhost:8088/rest/page?start={start1}&page={page2}",Notice.class,map);
  32. System.out.println(notice.getBody().toString());
  33. }

post

  1. /**
  2. * post
  3. */
  4. public static void post(){
  5. RestTemplate restTemplate = new RestTemplate();
  6. MultiValueMap<String, String> requestMap= new LinkedMultiValueMap<String, String>();
  7. requestMap.add("client_id", "123");
  8. requestMap.add("app_code", "abc");
  9. HttpEntity requestEntity = new HttpEntity(requestMap,null);
  10. String responseAsString = restTemplate.postForObject("http://localhost:8088/rest/post",requestEntity,String.class);
  11. System.out.println("post1:" + responseAsString);
  12. //发送json数据
  13. requestMap= new LinkedMultiValueMap<String, String>();
  14. requestMap.add("client_id", "123");
  15. requestMap.add("app_code", "abc");
  16. // 必须加上header说明
  17. HttpHeaders headers = new HttpHeaders();
  18. headers.setContentType(MediaType.APPLICATION_JSON_UTF8);
  19. HttpEntity<String> jsonEntity = new HttpEntity<String>(new Gson().toJson(requestMap),headers);
  20. responseAsString = restTemplate.postForObject("http://localhost:8088/rest/post2",jsonEntity,String.class);
  21. System.out.println("postJson:" + responseAsString);
  22. }
  23. exchange
  24. /**
  25. * 可以指定调用类型
  26. */
  27. public static void exchange(){
  28. RestTemplate restTemplate = new RestTemplate();
  29. //发送post
  30. MultiValueMap<String, Object> params = new LinkedMultiValueMap<String, Object>();
  31. params.add("pageNo",1);
  32. HttpEntity entity = new HttpEntity(params,null);
  33. Notice testList = restTemplate.exchange("http://localhost:8088/rest/exchange1", HttpMethod.POST, entity, new ParameterizedTypeReference<Notice>() {}).getBody();
  34. System.out.println(testList.toString());
  35. Notice notice = restTemplate.exchange("http://localhost:8088/rest/exchange2?pageNo=66", HttpMethod.GET, null,new ParameterizedTypeReference<Notice>() {}).getBody() ;
  36. System.out.println(notice.toString());
  37. }

对应controller

  1. @RestController
  2. @RequestMapping("/rest")
  3. public class RestController {
  4. @GetMapping("/notice")
  5. public Notice notice(){
  6. Notice notice = new Notice();
  7. notice.setMsg("666");
  8. notice.setStatus(1);
  9. notice.setData(new LinkedList<>());
  10. return notice;
  11. }
  12. @GetMapping("/hello/5")
  13. public Notice hello5(){
  14. Notice notice = new Notice();
  15. notice.setMsg("hello5");
  16. notice.setStatus(1);
  17. notice.setData(new LinkedList<>());
  18. return notice;
  19. }
  20. @GetMapping("/page")
  21. public Notice page(HttpServletRequest request){
  22. String start = request.getParameter("start");
  23. String page = request.getParameter("page");
  24. Notice notice = new Notice();
  25. notice.setMsg("start:" + start + ", page:" + page);
  26. notice.setStatus(1);
  27. notice.setData(new LinkedList<>());
  28. return notice;
  29. }
  30. @PostMapping("/post")
  31. public Notice post1(HttpServletRequest request){
  32. String client_id = request.getParameter("client_id");
  33. String app_code = request.getParameter("app_code");
  34. Notice notice = new Notice();
  35. notice.setMsg("client_id:" + client_id + ", app_code:" + app_code);
  36. notice.setStatus(1);
  37. notice.setData(new LinkedList<>());
  38. return notice;
  39. }
  40. @PostMapping("/post2")
  41. public Notice post2(@RequestBody String json){
  42. Notice notice = new Notice();
  43. notice.setMsg("json:" + json );
  44. notice.setStatus(1);
  45. notice.setData(new LinkedList<>());
  46. return notice;
  47. }
  48. @PostMapping("/exchange1")
  49. public Notice exchange1(HttpServletRequest request){
  50. String pageNo = request.getParameter("pageNo");
  51. Notice notice = new Notice();
  52. notice.setMsg("post---pageNo:" + pageNo);
  53. notice.setStatus(1);
  54. notice.setData(new LinkedList<>());
  55. return notice;
  56. }
  57. @GetMapping("/exchange2")
  58. public Notice exchange2(HttpServletRequest request){
  59. String pageNo = request.getParameter("pageNo");
  60. Notice notice = new Notice();
  61. notice.setMsg("get---pageNo:" + pageNo);
  62. notice.setStatus(1);
  63. notice.setData(new LinkedList<>());
  64. return notice;
  65. }
  66. }

发表评论

表情:
评论列表 (有 0 条评论,223人围观)

还没有评论,来说两句吧...

相关阅读