【问题标题】:URI Builder - building a query string?URI Builder - 构建查询字符串?
【发布时间】:2014-10-13 19:15:44
【问题描述】:

我正在尝试构建一个字符串/URI 来访问 API。 API 接受一个句子参数。现在我这样做的尝试如下:

//params[0] is a String such as "You will be a hero"
Uri.Builder builder = new Uri.Builder();
builder.scheme("https").authority("yoda.p.mashape.com/yoda").appendQueryParameter("sentence", params[0]);
Log.v("STRING TEST", builder.build().toString());

这只是我最好的尝试,并没有按我的意愿工作。这当前输出:

https://yoda.p.mashape.com%2Fyoda?sentence=you%20will%20be%20a%20hero

我正在寻找一种方法来构建如下所示的 URI:

https://yoda.p.mashape.com/yoda?sentence=you+will+be+a+hero

任何帮助将不胜感激。非常感谢!

【问题讨论】:

    标签: android uri uribuilder


    【解决方案1】:

    要修复您的 %2f 看这里:Uri Builder in android - '/' replaced by '%2F' and ":" is replaced by "%3A" 并修复 %20 尝试用 + 替换空格,然后再将其添加到构建器。

    【讨论】:

    • 使用 appendPath 修复了 %2F。但是用 + 替换空格会导致类似的问题,appendQueryParameter 将所有 + 转换为 %2B 而不是保留它们。
    • 我使用 .encodedQuery("sentence=" + params[0]) 而不是 appendQueryParameter 解决了这个问题
    猜你喜欢
    • 1970-01-01
    • 2013-06-10
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-23
    • 1970-01-01
    • 2010-12-07
    相关资源
    最近更新 更多