提交请求

提交请求

GET请求

Mono<String> stringMono = WebClient.create()
        .get()
        .uri("https://jsonplaceholder.typicode.com/posts/1")
        .cookie("name", "zhangsan")
        .header("token", "123")
        .headers(httpHeaders -> {
            httpHeaders.add("name", "zhangsan");
            httpHeaders.add("token", "123");
        })
        .retrieve().bodyToMono(String.class);
stringMono.subscribe(
        System.out::println,
        throwable -> System.out.println("error"),
        () -> System.out.println("complete"));

POST 请求

提交json数据

Mono<String> stringMono = WebClient.create()
        .post()
        .uri("https://jsonplaceholder.typicode.com/posts")
        .contentType(MediaType.APPLICATION_JSON)
        .bodyValue(Map.of("name", "zhangsan"))
        .retrieve().bodyToMono(String.class);
stringMono.subscribe(
        System.out::println,
        throwable -> System.out.println("error"),
        () -> System.out.println("complete"));

提交表单数据

MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
formData.add("name", "张三");
Mono<String> stringMono = WebClient.create()
        .post()
        .uri("https://jsonplaceholder.typicode.com/posts")
        .contentType(MediaType.APPLICATION_FORM_URLENCODED)
        .bodyValue(formData)
        .retrieve().bodyToMono(String.class);
stringMono.subscribe(
        System.out::println,
        throwable -> System.out.println("error"),
        () -> System.out.println("complete"));

上传文件

String url = "https://httpbin.org/post";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.IMAGE_PNG);
HttpEntity<ClassPathResource> entity = new HttpEntity<>(new ClassPathResource("test.png"), headers);
MultiValueMap<String, Object> parts = new LinkedMultiValueMap<>();
parts.add("file", entity);
Mono<String> resp = WebClient.create().post()
        .uri(url)
        .contentType(MediaType.MULTIPART_FORM_DATA)
        .body(BodyInserters.fromMultipartData(parts))
        .retrieve().bodyToMono(String.class);
Thread.sleep(4000);

最后更新于

这有帮助吗?