spring - Spring boot 2:加号(+)未在查询参数中编码
问题描述
目前,我正在将我的一项微服务从 spring boot 1.x 迁移到 spring boot 2。考虑有两个服务 A 和 B。服务 A 调用服务 B 的其余端点。在查询中,服务 A 正在传递一个字母数字字符串,该字符串还包含 (+) 字符(并不总是因为它是随机生成的字符串)。服务 B 将此字符串与存储在 db 中的字符串进行比较并返回响应。
我观察到 1.x 版本的 URL 得到了正确编码。前任。如果我通过 (a+b),它会被编码为 a%2Bb,而在服务 B 中,它会被解码为 (a+b)。但是,对于 2.x 版本,它仅被编码为 (a+b),因此在服务 B 中它被解码为 (ab) [+ 被解码为空白]
我正在使用UriComponentBuilder构建 URI 和 encode() 方法来编码 URI。在调试时,我发现 URL 中允许使用 + 字符,这就是它没有被编码的原因。
我的问题是- 有没有办法改变这种行为,以便我得到 + 作为 %2B 。或者,如果我做错了什么,请指出我正确的地方。如果需要,我也可以共享代码。
解决方案
推荐阅读
- php - curl_getinfo() 显示执行前后的空参数
- angular - *ngFor 在 Angular 6 中使用 jsPDF 时不显示数据
- python - Python比较两个特定的字典
- reactjs - 如何在子组件的构造函数中等待父组件的props
- scala - 将 Twitter Future[False] 转换为特殊 Future 的惯用方式?
- google-cloud-composer - 如何在 GoogleCloudComposer 中使用 KubernetesPodOperator 运行具有特权标志的容器?
- json - 如何将json批量转换为csv?
- excel - Excel - 将值与对应列匹配,检查值并删除行
- javascript - 跳房子关闭模式 onNext 或 onEnd
- asp.net-core - 在没有 IIS 的情况下在 Windows 上托管时的 WebHost.CreateDefaultBuilder