webclient uri,如何处理%

slwdgvem  于 2021-07-23  发布在  Java
关注(0)|答案(0)|浏览(274)

我在设置queryparams时遇到了webclient问题。代码如下:

WebClient webClient = WebClient.create(config.getOAuth2Url());

        return webClient.post()
                .uri(uriBuilder -> uriBuilder
                        .path("/oauth/authorize")
                        .queryParam(RESPONSE_TYPE, request.getResponse_type())
                        .queryParam(CLIENT_ID, request.getClient_id())
                        .queryParam(REDIRECT_URI, request.getRedirect_uri()) // pay attention here
                        .build())
                .header("cookie", jSessionId)
                .acceptCharset(StandardCharsets.UTF_8)
                .retrieve()
                .toEntity(JsonNode.class)
                .block();

问题是

request.getRedirect_uri()

是包含%个字符的字符串,如下所示:

https%3A%2F%2Fbra...

我得到了一个400错误,因为webclient在某个步骤中改变了这个字符串:

https%253A%252F%252Fbra

当然,如果我用我的原值来做 curl ,它会工作,如果我用修改过的字符串来做 curl ,我会得到400。如何更改webclient行为,使其不会修改我的url?

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题