Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
5.3
-
None
Description
When upgrading from Http Client v4 to v5 then the URIBuilder has changed a default value for the plusAsBlank option.
In v4 the default is true
org.apache.http.client.utils.URLEncodedUtils.decodeFormFields()
~~~
return urlDecode(content, charset != null ? charset : Consts.UTF_8, true);
~~~
In v5 the default is changed to false
org.apache.hc.core5.net.URIBuilder.digestURI()
~~~
this.queryParams = parseQuery(uri.getRawQuery(), charset, false);
~~~
I wonder if the URIBuilder could have some kind of flag that can be set to set whether to use true or false.
import org.apache.hc.core5.http.NameValuePair;
import org.apache.hc.core5.http.message.BasicNameValuePair;
import org.apache.hc.core5.net.URIBuilder;
URIBuilder uriBuilder;
uriBuilder = new URIBuilder("http://dummy/demo+demo?sample=sample+sample");
LOG.info("uri="+uriBuilder.toString());
List<NameValuePair> queryParameters = uriBuilder.getQueryParams();
queryParameters.add(new BasicNameValuePair("Greeting", "hello"));
uriBuilder.setParameters(queryParameters);
LOG.info("uri="+uriBuilder.toString());