httpclient的(3.1)URIUtil.encodeQuery()在org.apache.httpcomponents(4.4.1)中消失,任何替代?

时间:2016-05-04 09:38:28

标签: httpclient

在我的项目代码中,需要对URL进行编码。它目前使用httpclient 3.1 jar并使用其方法URIUtil.encodeQuery()来完成这项工作。但我们正在将jar升级到更新的版本,org.apache.httpcomponents 4.4.1。

我找不到encodeQuery方法的任何确切替代品。已经在帖子What happened to URIUtil.encodePath from commons-httpclient-3.1?中讨论过它。

但我仍在寻找encodeQuery()的任何好替代品,任何人都可以提出建议。

由于

2 个答案:

答案 0 :(得分:1)

在我们的项目中,我们使用URIBuilder类。

https://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/utils/URIBuilder.html

构建器返回标准java URI。

答案 1 :(得分:0)

如果您有一个新项目,建议您使用构建器来遵循the other answer

在我这边,由于我的项目很旧并且不想重构太多,所以我只是切换到CXF项目中的另一个util类(因为它已经是我的依赖了)。

我刚刚将代码URIUtil.encodeQuery(strQuery)替换为URIParserUtil.escapeChars(strQuery)

API文档为here