当前位置: 首页 > 知识库问答 >
问题:

如何使用webflux Webclient创建带有参数的请求?

李和昶
2023-03-14

在后端,我有带有POST方法的REST控制器:

@RequestMapping(value = "/save", method = RequestMethod.POST)
public Integer save(@RequestParam String name) {
   //do save
   return 0;
}

如何使用带有请求参数的WebClient创建请求?

WebClient.create(url).post()
    .uri("/save")
    //?
    .exchange()
    .block()
    .bodyToMono(Integer.class)
    .block();

共有3个答案

华章横
2023-03-14

假设您已经创建了您的WebClient实例,并使用basUrl对其进行了配置。

this.webClient.get()
      .uri("/products")
      .retrieve();

结果:/产品

this.webClient.get()
      .uri(uriBuilder - > uriBuilder
        .path("/products/{id}")
        .build(2))
      .retrieve();
        

结果:/products/2

 this.webClient.get()
      .uri(uriBuilder - > uriBuilder
        .path("/products/{id}/attributes/{attributeId}")
        .build(2, 13))
      .retrieve();

结果:/products/2/attributes/13

this.webClient.get()
  .uri(uriBuilder - > uriBuilder
    .path("/peoples/")
    .queryParam("name", "Charlei")
    .queryParam("job", "Plumber")
    .build())
  .retrieve();

结果:

/peoples/?name=Charlei/job=Plumber
路裕
2023-03-14

发件人:https://www.callicoder.com/spring-5-reactive-webclient-webtestclient-examples/

webClient.get()
        .uri(uriBuilder -> uriBuilder.path("/user/repos")
                .queryParam("sort", "updated")
                .queryParam("direction", "desc")
                .build())
        .header("Authorization", "Basic " + Base64Utils
                .encodeToString((username + ":" + token).getBytes(UTF_8)))
        .retrieve()
        .bodyToFlux(GithubRepo.class);
黎阳冰
2023-03-14

在创建URI时,存在许多编码挑战。为了在编码部分保持正确的同时获得更大的灵活性,WebClient为URI提供了基于生成器的变体:

WebClient.create().get()
    .uri(builder -> builder.scheme("http")
                    .host("example.org").path("save")
                    .queryParam("name", "spring-framework")
                    .build())
    .retrieve()
    .bodyToMono(String.class);
 类似资料:
  • 问题内容: 有没有一种方法可以使用h:outputLink,其他JSF标签或代码来创建html链接,以创建带有请求参数的非面孔请求(HTTP GET)? 例如,我有以下导航规则 在我的页面中,我想输出以下html代码: 我可以在页面中编写html代码,但是我想使用导航规则,以便将所有url定义在一个可配置文件中。 问题答案: 这是一个有趣的想法。我很想知道它在实践中如何成功。 获取导航规则 导航由

  • 问题内容: 在swift 3中建议使用带参数的GET的哪种方法? 范例: 提前致谢 ! 问题答案: 示例如何使用请求。

  • 如果我在带有参数的Firebase上基于事件创建了一个受众,它将是受众中参数的总和? 例如, null 如果我们有一个名为“X”的受众,其中只有事件“a”和“value”小于5的规则用户,那么上面示例中的用户将在发送给我们第二个事件“a”后从该受众X中消失,因为10+4>5?还是他会留在观众“X”上?

  • 我需要构建一个API,其中大多数路由都以一个公共URL部分为前缀,该部分也有一个参数。 在我的具体案例中,我的路线需要如下所示: < code >/accounts/:account/resource 1/:some param < code >/accounts/:account/resource 2/:some param/whatever < code >/accounts/:account

  • 单击from-data或x-www-form-urlencoded 然后在键/值字段上传递两个参数。 ANDROID改装设置 原因是我使用了2个API(webapi和wcf)。我的所有其他响应都是对象数组。[{},{}]但在此呼叫中,我收到了以下信息 但我还是无法解析响应。