RestTemplate :
传统情况下在java代码里访问restful服务,一般使用Apache的HttpClient。不过此种方法使用起来太过繁琐。spring提供了一种简单便捷的模板类来进行操作,这就是RestTemplate来进行http或者https的调用

post请求
对于post请求提交有 FormData和Payload 两种形式:
1.第一种是formdata形式,在header参数里可以直接看到
2.payload则封装成json格式post过去,获取以后需要再解析成实体。

restTemplate post json格式 payload模式

首先需要注册restTemplate的bean

package com.fnm.feynman.hospital.web.config;import org.springframework.boot.SpringBootConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;/*** @author yanjun.liu* @date 2020/10/15--10:25*/
@SpringBootConfiguration
public class RestTemplateConfig {@BeanRestTemplate restTemplate(){return new RestTemplate();}
}

然后进行发送消息

注入 RestTemplate

    @Resourceprivate RestTemplate restTemplate;

发送请求

    @GetMapping("/test")public String test() {OrderMessageNotice orderMessageNotice = new OrderMessageNotice();orderMessageNotice.setOpenId("openId:3");orderMessageNotice.setTitle("预约通知");orderMessageNotice.setTask("您已成功预约锦绣苑社区卫生服务站的就诊预约,预约时间为:2020-09-28 10:00--11:00");log.info("调用建行接口,预约订单url:{}",orderMessageNotice.getUrl());JSONObject postData = (JSONObject)JSONObject.toJSON(orderMessageNotice);String url="你要请求的url";String body = restTemplate.postForEntity(url, postData, String.class).getBody();log.info("调用建行接口,预约通知返回的结果body:{}",body);//将返回的json字符串转为java  BeanOrderMessageNoticeResponse orderMessageNoticeResponse = JSON.parseObject(body, OrderMessageNoticeResponse.class);orderMessageNoticeResponse.getSuccess()+orderMessageNoticeResponse.getMsg();}

formdata模式。post提交

String url = 'http://posturl';
MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
map.add("shopid","1");
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<MultiValueMap<String, String>>(map, headers);
return restTemplate.postForEntity(url, request,String.class);//对header进行请求头设置,如果不设置也可以直接post那么就是如下的
//使用默认的请求头,String url = 'http://posturl';
MultiValueMap<String, String> map= new LinkedMultiValueMap<String, String>();
map.add("shopid","1");
return restTemplate.postForEntity(url, map,String.class);

RestTemplate 发送http post请求相关推荐

  1. RestTemplate 发送 Https 请求调用

    RestTemplate 发送 Https 请求调用 个人博客:https://jacob.org.cn import org.apache.http.conn.ssl.NoopHostnameVer ...

  2. restTemplate发送put请求

    restTemplate发送put请求 1.没有返回体 2.有返回体 HttpHeaders headers = new HttpHeaders(); headers.setContentType(o ...

  3. RestTemplate 发送请求 清除Cookie

    RestTemplate 发送请求时 Cookie 的影响及注意事项 背景 ​ 一个基于 SpringCloud 的多服务项目中,服务间调用通过 Spring 的 RestTemplate 实现,后台 ...

  4. 【RestTemplate发送post、get请求】

    RestTemplate发送post.get请求 使用RestTemplate发送post请求 private String restTemplateByPost(String apiUrl, Map ...

  5. 如何设置Fiddler来拦截Java代码发送的HTTP请求,进行各种问题排查

    我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java 代码发送的HTTP请求明细的情况.和javascript代码在浏览器里发送请求可以 ...

  6. postman无法获得响应_【原创翻译】POSTMAN从入门到精通系列(二):发送第一个请求...

    通过API请求,您可以与具有要访问的API端点的服务器联系,并执行某些操作.这些操作是HTTP方法. 最常用的方法是GET,POST,PUT和DELETE.方法的名称是不言自明的.例如,GET使您可以 ...

  7. ajax 跨域请求,每次会发送两个请求?

    2019独角兽企业重金招聘Python工程师标准>>> 跨域已经是个老话题了,但是最近搞百度的语音接口的时候,在服务端配置了 CORS ,跨域倒是没问题,但是每次都会发送两个请求: ...

  8. python同时同步发送多个请求_python如何实现“发送一个请求,等待多个响应”的同步?...

    我正在写一些代码通过串行口与单片机通信. MCU端基本上是一个请求/响应服务器. 一个或多个MCU发送我的请求. 然而,响应可以异步到达并且具有随机延迟,但是响应的顺序将保持不变. 另外,我的应用程序 ...

  9. 调用webapi 错误:使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件。的解决方案

    调用webapi 错误:使用 HTTP 谓词 POST 向虚拟目录发送了一个请求,而默认文档是不支持 GET 或 HEAD 以外的 HTTP 谓词的静态文件.的解决方案 参考文章: (1)调用weba ...

最新文章

  1. pycharm第一个Python程序
  2. shelve 之VS. pickle
  3. 国内首个比特币勒索病毒制作者落网,但过程有点好笑...
  4. ArrayList 和 LinkedList 的自定义实现
  5. STM32 基础系列教程 43 – SRAM
  6. 投资学习网课笔记(part5)--基金第五课
  7. mysql根据已有表创建新表_SQL根据现有表新建一张表
  8. 增加或修改的存储过程
  9. 华谊兄弟:实际控制人王忠军、王忠磊合计减持1.44%公司股份
  10. vbreport8.wpf.viewer 个别电脑不显示_手机听歌不过瘾?一招将Win10电脑变成蓝牙音箱...
  11. 嵌入式状态机编程-QP状态机框架与常见状态机方法
  12. Unity摄像机上下旋转镜头实现
  13. java ftp 上传文件 无效_FTP文件上传失败Java
  14. Libre密聊——致力于私密聊天的用心APP
  15. https访问http接口处理
  16. 万能用户名和万能密码
  17. 教你一招搞定 GitHub 下载加速!
  18. Python 框架 之 Django MVT 下的 V 的 视图简单介绍和使用
  19. 郝健: Linux内存管理学习笔记-第2节课【转】
  20. 回溯法求解消消乐实验

热门文章

  1. GBase8s数据库ALTER SEQUENCE 语句
  2. 前端优化之for循环
  3. kcp-go 源码分析(二)
  4. 热血军团-targetFrameRate
  5. 小米手机无法安装apk INSTALL_CANCELED_BY_USER
  6. miniconda写python配置spyder
  7. 手机android版本是什么,华为手机为什么有EMUI版本和Android版本?
  8. 腾讯蓝鲸智云版本再迎新升级,正式推出容器化部署版本V7.0
  9. python如何删除mysql数据库_python删除数据mysql数据库连接
  10. 用PyMOL制作分子结构图像及所用脚本