Nir*_*ane 12 spring-boot spring-webflux spring-webclient
如何使用 Spring Bootwebclient发布application/x-www-form-urlencoded
内容类型为“application/x-www-form-urlencoded”的示例 curl 请求的请求
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'username=XXXX' \
--data-urlencode 'password=XXXX'
Run Code Online (Sandbox Code Playgroud)
如何使用 webclient 发送相同的请求?
Nir*_*ane 27
我们可以BodyInserters.fromFormData为此目的使用
webClient client = WebClient.builder()
.baseUrl("SOME-BASE-URL")
.defaultHeader(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_FORM_URLENCODED_VALUE)
.build();
return client.post()
.uri("SOME-URI)
.body(BodyInserters.fromFormData("username", "SOME-USERNAME")
.with("password", "SONE-PASSWORD"))
.retrieve()
.bodyToFlux(SomeClass.class)
.onErrorMap(e -> new MyException("messahe",e))
.blockLast();
Run Code Online (Sandbox Code Playgroud)
cor*_*ump 12
另一种形式:
MultiValueMap<String, String> formData = new LinkedMultiValueMap<>();
formData.add("username", "XXXX");
formData.add("password", "XXXX");
String response = WebClient.create()
.post()
.uri("URL")
.contentType(MediaType.APPLICATION_FORM_URLENCODED)
.body(BodyInserters.fromFormData(formData))
.exchange()
.block()
.bodyToMono(String.class)
.block();
Run Code Online (Sandbox Code Playgroud)
以我的拙见,对于简单的请求,REST Assured更易于使用。
| 归档时间: |
|
| 查看次数: |
14133 次 |
| 最近记录: |