广告
返回顶部
首页 > 资讯 > 精选 >RestTemplate怎么调用POST和GET请求
  • 101
分享到

RestTemplate怎么调用POST和GET请求

2023-07-05 19:07:26 101人浏览 泡泡鱼
摘要

本文小编为大家详细介绍“RestTemplate怎么调用POST和GET请求”,内容详细,步骤清晰,细节处理妥当,希望这篇“RestTemplate怎么调用POST和GET请求”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习

本文小编为大家详细介绍“RestTemplate怎么调用POST和GET请求”,内容详细,步骤清晰,细节处理妥当,希望这篇“RestTemplate怎么调用POST和GET请求”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

在日常开发过程中,Http接口不仅提供给前端调用,有的时候还需要提供给其他业务方调用,在后台调用http请求的时候,我们一般使用Http Client客户端调用,java常用的Http客户端有:

  • java原生的HttpURLConnection

  • Apache http client

  • OkHttp

  • RestTemplate

在RestTemplate中,对同一种请求方式,一般有两种调用方法:

  • xxForObject

    • 返回一个指定类型的对象,通常是响应体反序列化后的java对象

    • 只返回反序列化的java对象,没有额外的http相应信息,只知道请求是否成功。

  • xxForEntity

    • 返回的是一个ResponseEntity对象,其中包含完整的http响应信息(状态码、响应头、响应体)

一、POST请求调用

  • postForObject

postForObject/postForEntity(String url, Object request, Class<T> responseType, Object... uriVariables)eg:void fun() {    HttpHeaders headers = new HttpHeaders();     headers.setContentType(MediaType.APPLICATION_JSON);    MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();    HttpEntity<String> httpEntity = new HttpEntity<>(params, headers);    // 注意,如果想要使用可变参数来拼接url,那这里的url一定要使用占位符{}替换,并且名称要和可变参数名称一样才能在运行时将占位符位置替换成传入动态参数【可变参数也可以不传,那么这里的url就不需要占位符拼接】    String url = "http://www.sea.com?uid={uid}&username={username}";    String uid = "123";    String username = "sea";    // 因为responseType用的是String类型,所以返回的是一个String类型字符串    String result = restTemplate.postForObject(url, httpEntity, String.class, uid, username);}postForObject/postForEntity(String url, Object request, Class<T> responseType, Map<String, ?> uriVariables)eg:void fun() {    HttpHeaders headers = new HttpHeaders();     headers.setContentType(MediaType.APPLICATION_jsON);    MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();    HttpEntity<String> httpEntity = new HttpEntity<>(params, headers);    // 注意,如果想要使用可变参数来拼接url,那这里的url一定要使用占位符{}替换,并且名称要和可变参数名称一样才能在运行时将占位符位置替换成传入动态参数    String url = "http://www.sea.com?uid={uid}&username={username}";    Map<String, Object> params = new HashMap<>();    String uid = "123";    String username = "sea";    params.put("uid", uid);    params.put("username", username)    // 因为responseType用的是String类型,所以返回的是一个String类型字符串    String result = restTemplate.postForObject(url, httpEntity, String.class, params);}postForObject/postForEntity(URI url, Object request, Class<T> responseType)eg:void fun() {    HttpHeaders headers = new HttpHeaders();     headers.setContentType(MediaType.APPLICATION_JSON);    MultiValueMap<String, Object> params = new LinkedMultiValueMap<>();    HttpEntity<String> httpEntity = new HttpEntity<>(params, headers);    String url = "http://www.sea.com";    MultiValueMap<String, String> multiValueMap = new LinkedMultiValueMap<>();    multiValueMap.put("uid", 123);    multiValueMap.put("username", "sea");    // 不再使用可变参数绑定url,直接传入绑定后的uri参数    URI uri = UriComponentsBuilder.fromHttpUrl(url).queryParams(multiValueMap).build().encode().toUri();    // 因为responseType用的是String类型,所以返回的是一个String类型字符串    String result = restTemplate.postForObject(uri, httpEntity, String.class);}eg: xxforEntity()void fun() {    Map<String, Object> map = new HashMap<>();    map.put("uid", 123);    map.put("username", "sea");    HttpHeaders headers = new HttpHeaders();    headers.setContentType(MediaType.APPLICATION_JSON);    HttpEntity<HashMap<String, Object>> httpEntity = new HttpEntity<>(map, headers);    String url = "http://www.sea.com";    // 使用xxforEntity,返回的是一个ResponseEntity,里面包含了statusCode(状态码)、Headers(响应头)、body(响应体)    ResponseEntity<String> responseEntity = restTemplate.postForEntity(uri, httpEntity, String.class);}

二、GET请求调用

getForObject/getForEntity(String url, Class<T> responseType, Object... uriVariables)getForObject/getForEntity(String url, Class<T> responseType, Map<String, ?> uriVariables)getForObject/getForEntity(URI url, Class<T> responseType)在get请求调用中,除了请求参数中少了Object request【请求头和请求体】,其他的参数和方法调用同上面post的方法调用是一样的

三、Exchange调用

exchange调用可以理解为是一个万能调用,不特定是post还是get类型调用,请求方式由调用者指定。 ps:如果在get请求中需要指定请求头和请求体,而getForXX又不支持方法又不支持设置请求头,此时可以改成用exchange方法来调用,自己往HttpEntity<?> requestEntity参数中设置请求头和体。

读到这里,这篇“RestTemplate怎么调用POST和GET请求”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网精选频道。

--结束END--

本文标题: RestTemplate怎么调用POST和GET请求

本文链接: https://www.lsjlt.com/news/354833.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • RestTemplate怎么调用POST和GET请求
    本文小编为大家详细介绍“RestTemplate怎么调用POST和GET请求”,内容详细,步骤清晰,细节处理妥当,希望这篇“RestTemplate怎么调用POST和GET请求”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习...
    99+
    2023-07-05
  • RestTemplate调用POST和GET请求示例详解
    目录正文一、POST请求调用二、GET请求调用三、Exchange调用正文 在日常开发过程中,http接口不仅提供给前端调用,有的时候还需要提供给其他业务方调用,在后台调用http...
    99+
    2023-05-13
    RestTemplate调用POST GET RestTemplate调用
  • RestTemplate GET请求怎么用
    这篇文章给大家分享的是有关RestTemplate GET请求怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、 getForObject() 方法1.1.以String的方式接受请求结果数据在S...
    99+
    2023-06-29
  • Java webservice的POST和GET请求调用方式
    目录webservice的POST和GET请求调用POST请求1.发送请求2.POST请求体3.测试GET请求通过webService调第三方提供的接口post与getPOSTGET...
    99+
    2022-11-13
  • NodeJS中怎么收发GET和POST请求
    NodeJS中怎么收发GET和POST请求,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一 express框架接收app.get('...
    99+
    2022-10-19
  • get请求和 post请求的区别是什么
    GET请求和POST请求是HTTP协议中常用的两种请求方法,它们的区别如下:1. 参数传递方式:- GET请求:参数通过URL的查询...
    99+
    2023-09-22
    get
  • Java 使用 HttpClient 发送 GET请求和 POST请求
    目录概述认证方式基础认证Auth用户名密码认证Bearer Token 认证配置超时生成 RequestConfig设置超时时间概述 日常工作中,我们经常会有发送 HTTP 网络请求...
    99+
    2022-11-12
  • PHP怎么使用cURL实现Get和Post请求
    使用cURL库可以轻松地实现GET和POST请求。GET请求:```php// 创建一个cURL资源$curl = curl_ini...
    99+
    2023-08-16
    PHP
  • 怎么利用Javascript发送GET/POST请求
    这篇文章主要为大家展示了“怎么利用Javascript发送GET/POST请求”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么利用Javascript发送GE...
    99+
    2022-10-19
  • axios gin的GET和POST请求怎么实现
    今天小编给大家分享一下axios gin的GET和POST请求怎么实现的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧...
    99+
    2023-06-30
  • Vue怎么为GET或POST请求设置请求头
    这篇文章主要介绍了Vue怎么为GET或POST请求设置请求头的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Vue怎么为GET或POST请求设置请求头文章都会有所收获,下面我们一起来看看吧。为GET或POST请求...
    99+
    2023-06-29
  • Node.js中怎么发起get/post请求
    Node.js中怎么发起get/post请求,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1、get由于get请求的参数在ur...
    99+
    2022-10-19
  • nodejs中怎么实现get/post请求
    这篇文章给大家介绍nodejs中怎么实现get/post请求,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1.用form表单的方法:(1)get方法前端代码:<form ...
    99+
    2022-10-19
  • SpringMVC中怎么发送GET、POST请求
    SpringMVC中怎么发送GET、POST请求,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。我们知道发起 GET 请求和 POST 请求,只需要在表单的 form 标签中,设...
    99+
    2023-06-02
  • POST请求和GET请求怎么传递和接收解析参数
    本篇内容介绍了“POST请求和GET请求怎么传递和接收解析参数”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成...
    99+
    2022-10-19
  • .Net中的Http请求调用详解(Post与Get)
    前言 http请求调用是开发中经常会用到的功能。在内,调用自有项目的Web Api等形式接口时会用到;在外,调用一些第三方功能接口时,也会用到,因为,这些第三方功能往往是通过http...
    99+
    2022-11-13
  • PHP用curl发起POST和GET的请求
    文章目录 前言二、curl实现逻辑2.1 发送GET请求2.2 发送POST请求2.3 其他选项 三、file_get_content实现POST总结 前言 本文已收录于PHP全栈系...
    99+
    2023-09-12
    php 开发语言 服务器 PHP curl
  • Qt怎么实现HTTP的Get/Post请求
    本文小编为大家详细介绍“Qt怎么实现HTTP的Get/Post请求”,内容详细,步骤清晰,细节处理妥当,希望这篇“Qt怎么实现HTTP的Get/Post请求”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。借助Qt的...
    99+
    2023-06-30
  • vue怎么封装Axios的get、post请求
    这篇“vue怎么封装Axios的get、post请求”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“vue怎么封装Axios的...
    99+
    2023-06-30
  • RestTemplate怎么实现发送带headers的GET请求
    这篇文章主要讲解了“RestTemplate怎么实现发送带headers的GET请求”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“RestTemplate怎么实现发送带headers的GET...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作