首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用spring boot web-client发布内容类型应用程序表单数据请求/x-www- Form -urlencoded

如何使用spring boot web-client发布内容类型应用程序表单数据请求/x-www- Form -urlencoded
EN

Stack Overflow用户
提问于 2020-01-18 01:28:31
回答 2查看 17.8K关注 0票数 14

如何使用spring boot应用程序发送内容类型为application/x-www-form-urlencoded的boot请求示例curl请求,内容类型为``application/x-www- webclient -urlencoded‘

代码语言:javascript
复制
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'username=XXXX' \
--data-urlencode 'password=XXXX'

如何使用webclient发送相同的请求?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-18 01:28:31

为此,我们可以使用BodyInserters.fromFormData

代码语言:javascript
复制
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();
票数 30
EN

Stack Overflow用户

发布于 2020-09-05 02:25:38

在另一种形式中:

代码语言:javascript
复制
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();

在我看来,对于简单的请求,REST Assured更容易使用。

票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59792224

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档