问题描述
我在设置查询参数时遇到了 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?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)