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. iOS11和机器学习CoreML库
  2. 服务器 Font family [‘sans-serif‘] not found.Falling back to DejaVu Sans.解决办法
  3. JUnit 3一个例子就懂
  4. oracle 12 ORA-01262,oracle物理dg安装:方法二
  5. 【鲲鹏来了】华为云鲲鹏弹性云服务器 KC1一文全掌握(4)
  6. (转载)arcgis for js - 解决加载天地图和WMTS服务,WMTS服务不显示的问题,以及wmts服务密钥。...
  7. matlab中cuda编程中分配grid和block dimension的时候的注意事项
  8. 数据库并发抢红包_Redis悲观锁解决高并发抢红包的问题
  9. 第一部分 线程APIs(Thread APIs)线程和运行(Threads and Runnables)
  10. 论文精读:车尧-《社会网络视角下战略性新兴产业的专利情报研究》
  11. phpspider 简单使用
  12. 追寻本质还是流于形式
  13. HTML5 progress进度条详解
  14. MFC对话框/控件下属性中的事件变成空白?
  15. 【Qbot】1.ChatGPT简介与Q群机器人部署教程
  16. QQ群 该页面暂时无法显示
  17. 这些优质的教育类公众号您知道么,非常实用!
  18. vc6.0到vs2015版本转换问题
  19. 信号发生器-电路与电子技术课程设计
  20. 净值继续回落,短期弱势难改

热门文章

  1. Windows10出现WIFI蓝牙图标消失,网卡驱动出现感叹号等无法上网的情况解决方案
  2. PyTorch nn.RNN 参数全解析
  3. 玩转通讯录备份(JNI实战)
  4. Ubuntu中安装KDE桌面
  5. 关闭计算机的方法有哪三种,在Windows XP系统中可以通过哪几种方法关闭电脑呢?...
  6. 浅析Linux namespace
  7. java queue toarray_java.util.PriorityQueue.toArray()
  8. H5跳转小程序,小程序跳转小程序
  9. 小马哥---高仿三星W2017 主板Y966 6735芯片 刷机机型外观图 多图赏析鉴别
  10. 天锋w2019_三星W2019亲兄弟来袭!天锋W2019雷同的外观,更高端的性能