微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OkHttpClient 支持查询参数中的编码特殊字符,如 %20(+)

如何解决OkHttpClient 支持查询参数中的编码特殊字符,如 %20(+)

我们已经将我们的产品从 Apache HttpClient 升级到 OkHttpClient。但是在迁移之后,当 %20(+) 之类的特殊字符在 URL param 或 query param 中传递时,它会按原样发送到客户端,在那里解码并使用 Apache HttpClient 发送到客户端。

例如:http://ip:port/testURL?A%20B -> http://ip:port/testURL?A+B (Apache HttpClient) http://ip:port/testURL?A%20B -> http://ip:port/testURL?A%20B ( OkHttpClient)

解决方法

OkHttp 尝试尽可能多地保留输入 URL。如果要将部分转换为规范形式,请使用 HttpUrl.Builder 并独立设置每个部分,可能使用原始解析的 HttpUrl 作为输入。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。