换个方式访问该接口,示例如下:
期待"JavaEdge:dev 666",但是运行上述代码后,你会发现结果却是下面这样:
why?
解析
这就要求精通 URL 的处理:
UriComponentsBuilder#toUriString:
URL Encode
调用栈如下:
至此,都还是正常的,但是当我们把 URL 转化成 String,再通过如下语句发送请求时:
会发现,它会再进行一次编码:
至此,你应该理解为啥出问题了:依案例代码会执行 2 次编码(Encode),所以最终获取意外惊喜!
2 次编码后:
修正
避免多次转化而发生多次编码:
链接:https://juejin.cn/post/7035543318448570404