zoukankan      html  css  js  c++  java
  • WebFlux系列(八)WebClient Uri传参

    #Java#Spring#WebFlux#WebClient#Post#Get#传参#Uri#

    WebClient如何通过Uri以Get方式传参

    视频讲解 : https://www.bilibili.com/video/av82953521/

    WebfluxServerApplication.java
    package com.example.webfluxserver;
    
    import lombok.extern.log4j.Log4j2;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.http.server.reactive.ServerHttpRequest;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.PathVariable;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    import reactor.core.publisher.Mono;
    
    @Log4j2
    @SpringBootApplication
    public class WebfluxServerApplication extends BaseApplication {
        public static void main(String[] args) {
            SpringApplication.run(WebfluxServerApplication.class, args);
        }
        @RestController
        class EmployeeController {
            @GetMapping("employee")
            public Mono<String> request(@RequestParam Long id , @RequestParam String name, ServerHttpRequest request){
                return Mono.just(request.getURI().toString());
            }
            @GetMapping("employee/{id}/{name}")
            public Mono<String> path(@PathVariable Long id ,@PathVariable String name, ServerHttpRequest request){
                return Mono.just(request.getURI().toString());
            }
    
        }
    }
    WebfluxConsumerApplication.java
    package com.example.webfluxconsumer;
    
    import lombok.extern.log4j.Log4j2;
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.web.bind.annotation.*;
    import org.springframework.web.reactive.function.client.WebClient;
    import reactor.core.publisher.Mono;
    
    @Log4j2
    @SpringBootApplication
    public class WebfluxConsumerApplication {
        public static void main(String[] args) {
            SpringApplication.run(WebfluxConsumerApplication.class, args);
        }
    
        @RestController
        class EmployeeController {
            @GetMapping("employee/{id}/{name}")
            public Mono<String> path(@PathVariable Long id, @PathVariable String name) {
                return WebClient.create(baseUrl)
                        .get()
                        .uri(uriBuilder -> uriBuilder.path("/employee2/{id}/{name}")
                                .build(id, name))
                        .retrieve()
                        .bodyToMono(String.class);
            }
            @GetMapping("employee")
            public Mono<String> request(@RequestParam Long id, @RequestParam String name) {
                return WebClient.create(baseUrl)
                        .get()
                        .uri(uriBuilder -> uriBuilder.path("/employee")
                                .queryParam("id", id)
                                .queryParam("name", name)
                                .build())
                        .retrieve()
                        .bodyToMono(String.class);
            }
        }
    }

    公众号,坚持每天3分钟视频学习

  • 相关阅读:
    30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用
    SAP Marketing Cloud功能简述(一) : Contacts和Profiles
    如何使用点击超链接的方式打开Android手机上的应用
    1036. Boys vs Girls (25)
    Yet another A + B
    1033. To Fill or Not to Fill (25)
    1032. Sharing (25)
    1021. Deepest Root (25)
    1017. Queueing at Bank (25)
    1016. Phone Bills (25)
  • 原文地址:https://www.cnblogs.com/JavaWeiBianCheng/p/12186116.html
Copyright © 2011-2022 走看看