URIBuilder setParameter为空格添加+而不是%20

问题描述 投票:6回答:1

我正在尝试使用URIBuilder构建URL,由于某种原因,我得到+而不是%20的空间。

这是我的代码:

            URI uri=null;
            try {
                uri = ub.setScheme("http")
                        .setHost("myalcoholist.com")
                        .setPath("/drink-management/view-drink-json")
                        .setParameter("flavor",(String)params[1])
                        .setParameter("brand",(String)params[2])
                        .setParameter("company",(String)params[3])
                        .build();
            } catch (URISyntaxException e) {
                Log.e("url", "could not parse url", e);
                return null;
            }

参数:

params[3] = {java.lang.String@831933398520}"contreau france."
params[2] = {java.lang.String@831933398384}"cointreau"
params[1] = {java.lang.String@831933398256}"orange"

结果网址:

"GET /drink-management/view-drink-json?flavor=orange&brand=cointreau&company=contreau+france. HTTP/1.1" 200 538 "-" "Apache-HttpClient/UNAVAILABLE (java 1.4)"

我需要更改哪些参数才能正确编码?

谢谢

java decoding uribuilder
1个回答
1
投票

我知道这篇文章很旧,但是由于它是google给我的第一个结果并且没有答案,因此这是我解决问题的方法:

只需将URLEncoder.encode(string, "UTF-8")与要更改的字符串(字符串是您自己的字符串)一起使用。这会将您的字符串中UTF-8中的所有字符编码为URL格式。

© www.soinside.com 2019 - 2024. All rights reserved.