当前位置:   article > 正文

springBoot RestTemplate二http post传递json参数的多种方法_springboot post json

springboot post json

目录

 

post请求json数据(添加请求头)

接收端

发送端

测试

post请求json数据(添加请求头)并传递表单参数

请求端

测试

restTemplate.exchange post请求json数据(添加请求头)并传递表单参数

请求端

post请求json数据(添加请求头) 直接传递jsonString数据

RestTemplateBuilder post请求直接传递jsonString数据


post请求json数据(添加请求头)

接收端

  1. @PostMapping("/callBackFor")
  2. public JSONObject callBackFor(HttpServletRequest request, @RequestBody JSONObject jsonObject) {
  3. /*
  4. * String data 不可以接受json字符串,只能接收名为data的参数
  5. * @RequestBody String data 可以以json字符串的形式接收json字符串
  6. * @RequestBody JSONObject jsonObject 可以接收json字符串并转化为JSONObject对象
  7. * */
  8. Enumeration<String> parameterNames = request.getParameterNames();
  9. while (parameterNames.hasMoreElements()) {//传递json数据的时候request是没有表单参数的
  10. String parameterName = parameterNames.nextElement();
  11. System.out.println(parameterName + "===" + request.getParameter(parameterName));
  12. }
  13. System.out.println(jsonObject.toJSONString());//
  14. Enumeration<String> headerNames = request.getHeaderNames();
  15. while (headerNames.hasMoreElements()){
  16. String header = headerNames.nextElement();
  17. System.out.println(header+"=="+request.getHeader(header));
  18. }
  19. //无论是@RequestBody String data还是@RequestBody JSONObject jsonObject 最后都要转换为后者,因此建议@RequestBody JSONObject jsonObject接收json字符串
  20. Set<Map.Entry<String, Object>> entries = jsonObject.entrySet();
  21. System.out.println("=====我是回调函数=====");
  22. for (Map.Entry<String, Object> entry : entries) {
  23. System.out.println(entry.getKey() + "--" + entry.getValue());
  24. }
  25. System.out.println("=====================");
  26. JSONObject result = new JSONObject();
  27. result.put("code", 1);
  28. result.put("msg", "调用成功!");
  29. return result;
  30. }

发送端

  1. /**
  2. * post请求json数据(添加请求头)
  3. */
  4. public static void test1(){
  5. RestTemplate restTemplate = new RestTemplate();
  6. //创建请求头
  7. HttpHeaders headers = new HttpHeaders();
  8. headers.setContentType(MediaType.APPLICATION_JSON);
  9. String url = "http://localhost:8087/callBackFor";
  10. User student = new User("sansan",10);
  11. HttpEntity<User> entity = new HttpEntity<User>(student, headers);
  12. ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, entity, String.class);
  13. String user = responseEntity.getBody();//{"msg":"调用成功!","code":1}
  14. System.out.println(user);
  15. }

测试

在这里插入图片描述
在这里插入图片描述

post请求json数据(添加请求头)并传递表单参数

接收端不变

请求端

  1. /**
  2. * post请求json数据(添加请求头)并传递表单参数
  3. */
  4. public static void test2(){
  5. RestTemplate restTemplate = new RestTemplate();
  6. //创建请求头
  7. HttpHeaders headers = new HttpHeaders();
  8. headers.setContentType(MediaType.APPLICATION_JSON);
  9. String url = "http://localhost:8087/callBackFor?id={id}";
  10. Map<String, String> params = new HashMap<String, String>();
  11. params.put("id", "123");
  12. User student = new User("sansan",10);
  13. HttpEntity<User> entity = new HttpEntity<User>(student, headers);
  14. ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, entity, String.class, params);
  15. String user = responseEntity.getBody();//{"msg":"调用成功!","code":1}
  16. System.out.println(user);
  17. }

测试

在这里插入图片描述

在这里插入图片描述

restTemplate.exchange post请求json数据(添加请求头)并传递表单参数

请求端

  1. /**
  2. * restTemplate.exchange post请求json数据(添加请求头)并传递表单参数
  3. * exchange可以发送HttpMethod.POST,DELE,GET,PUT请求;
  4. */
  5. public static void test3(){
  6. RestTemplate restTemplate = new RestTemplate();
  7. //创建请求头
  8. HttpHeaders headers = new HttpHeaders();
  9. headers.setContentType(MediaType.APPLICATION_JSON);
  10. String url = "http://localhost:8087/callBackFor?id={id}";
  11. //params是url中出现的路径变量
  12. Map<String, String> params = new HashMap<String, String>();
  13. params.put("id", "123");
  14. User student = new User("sansan",10);
  15. //entity包含请求的对象和消息头;
  16. HttpEntity<User> entity = new HttpEntity<User>(student, headers);
  17. ResponseEntity<String> responseEntity = restTemplate.exchange(url, HttpMethod.POST, entity, String.class, params);
  18. String user = responseEntity.getBody();//{"msg":"调用成功!","code":1}
  19. System.out.println(user);
  20. }

在这里插入图片描述

post请求json数据(添加请求头) 直接传递jsonString数据

  1. /**
  2. * post请求json数据(添加请求头) 直接传递jsonString数据
  3. */
  4. public static void test4(){
  5. RestTemplate restTemplate = new RestTemplate();
  6. //创建请求头
  7. HttpHeaders headers = new HttpHeaders();
  8. headers.setContentType(MediaType.APPLICATION_JSON);
  9. //也可以这样设置contentType
  10. //MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
  11. //headers.setContentType(type);
  12. //加不加Accept都可以
  13. //headers.add("Accept", MediaType.APPLICATION_JSON.toString());
  14. String url = "http://localhost:8087/callBackFor";
  15. User student = new User("sansan",19);
  16. String jsonString = JSONObject.toJSONString(student);
  17. System.out.println(jsonString);//{"age":10,"name":"sansan"}
  18. HttpEntity<String> entity = new HttpEntity<String>(jsonString, headers);
  19. ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, entity, String.class);
  20. String user = responseEntity.getBody();//{"msg":"调用成功!","code":1}
  21. System.out.println(user);
  22. }

在这里插入图片描述
在这里插入图片描述

RestTemplateBuilder post请求直接传递jsonString数据

  1. /**
  2. * RestTemplateBuilder post请求json数据(添加请求头) 直接传递jsonString数据
  3. */
  4. public static void test5(){
  5. //RestTemplate restTemplate = new RestTemplate();
  6. RestTemplateBuilder restTemplateBuilder = new RestTemplateBuilder();
  7. RestTemplate restTemplate = restTemplateBuilder.build();
  8. //创建请求头
  9. HttpHeaders headers = new HttpHeaders();
  10. headers.setContentType(MediaType.APPLICATION_JSON);
  11. //也可以这样设置contentType
  12. //MediaType type = MediaType.parseMediaType("application/json; charset=UTF-8");
  13. //headers.setContentType(type);
  14. //加不加Accept都可以
  15. //headers.add("Accept", MediaType.APPLICATION_JSON.toString());
  16. String url = "http://localhost:8087/callBackFor";
  17. User student = new User("sansan",19);
  18. String jsonString = JSONObject.toJSONString(student);
  19. System.out.println(jsonString);//{"age":10,"name":"sansan"}
  20. HttpEntity<String> entity = new HttpEntity<String>(jsonString, headers);
  21. ResponseEntity<String> responseEntity = restTemplate.postForEntity(url, entity, String.class);
  22. String user = responseEntity.getBody();//{"msg":"调用成功!","code":1}
  23. System.out.println(user);
  24. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/302857?site
推荐阅读
相关标签
  

闽ICP备14008679号