在使用特殊字符查询参数值时,URL格式不正确

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

我正在尝试用 POST 方法Api的Query params。其中有一个query param的值是以 *. 每个Query param都有正确的追加。但是只有这个以特殊字符开头的Query param没有正确的追加。

我的代码是这样的

                Uri.Builder uriBuilder = Uri.parse("").buildUpon();
                uriBuilder.appendQueryParameter("error", "true");
                uriBuilder.appendQueryParameter("type", "dfs_query_then_fetch");
                uriBuilder.appendQueryParameter("path", URLEncoder.encode("*.sames.samets._source", "UTF-8"));
                uriBuilder.build();
                String destinationsURL = uriBuilder.toString();

                String url1 = "https://host/template";
                String finalUrl = url1.concat(destinationsURL);

从路径查询的参数值来看,它并不是连接的。它像一个普通的字符串一样连接,而不是作为url。

我试过 URLEncoder.encode("","") ,但无法工作。请一些人帮助这个问题。任何解决方案赞赏。

enter image description here

android post format urlencode
1个回答
0
投票

尝试使用 Uri 而不是 UrlEncoder :

  val urlEncoded: String = Uri.encode(path); // %20%20*.sames.samets._source

  var urlEncoded =  URLEncoder.encode(path, "UTF-8"); // ++*.sames.samets._source
© www.soinside.com 2019 - 2024. All rights reserved.