首页 > Java > springframework.web.client RestClient 是否处理 @requestParam

springframework.web.client RestClient 是否处理 @requestParam

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2024-02-10 17:15:07
转载
998 人浏览过

php小编香蕉将为大家解答一个关于Spring Framework中的问题:RestClient是否处理@RequestParam?在Spring Framework中,使用RestTemplate进行HTTP请求时,@RequestParam注解用于从请求URL中获取参数。那么RestClient是否能够正确处理@RequestParam注解呢?接下来,我们将详细探讨这个问题,帮助您更好地理解和使用Spring Framework中的RestClient。

问题内容

我尝试这样做:

@getmapping("/db/video/getall")
public responseentity<list<videodto>> getallvideo(@requestparam string owneremail) {        
        return ....;
    }
登录后复制
import org.springframework.web.client.restclient;

restclient restclient = restclient.create("http://localhost:8095");

list<videodto> result = restclient.get()
    .uri("/db/video/getall")
    .accept(mediatype.application_json)
    .retrieve()
    .body(new parameterizedtypereference<list<videodto>>() {});
登录后复制
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot</artifactId>
    <version>3.2.1</version>
</dependency>
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>6.1.2</version>
  </dependency>
登录后复制

但我找不到代码示例,显示 restclient 如何将owneremail 作为@requestparam 传递。

我找到了 @pathvariable 代码示例。

那么,restclient 是否处理 @requestparam ?

解决方法

对于 get 请求,您可以在 url 中添加查询参数。 spring 的 uricomponentsbuilder 简化了 uri 的操作。

restclient.get()
    .uri(uricomponentsbuilder.frompath("/db/video/getall")
            .queryparam("owneremail", "email").touristring())
    // ...
登录后复制

对于 post 请求,正文可以设置为 multivaluemap。 content-type 可以根据其内容推断出来。

var parts = new LinkedMultiValueMap<String, Object>();
parts.add("ownerEmail", "emailValue");
restClient.post().uri("/db/video/getall").body(parts).retrieve().body(...);
登录后复制

以上是springframework.web.client RestClient 是否处理 @requestParam的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板