【问题标题】:Uri.parse(), how to get the encoding correct?Uri.parse(),如何正确编码?
【发布时间】:2013-06-30 14:02:10
【问题描述】:

我正在做一个应用程序,我必须从网页中读取一个 URL 作为字符串 [它不是页面的地址]。我将要阅读的 URL 包含查询字符串,我特别需要来自该 URL 的两个查询。所以我正在使用 Android 中可用的 Uri 类。现在,问题在于 URL 和查询的编码/格式。我需要的查询之一始终是 URL。有时查询 URL 是 % 编码的,有时不是。

网址可以如下所示:

案例 1:

http://www.example.com/example/example.aspx?file=http%3A%2F%2FXX.XXX.XX.XXX%2FExample.file%3Ftoken%3D9dacfc85

案例 2:

http://www.example.com/example/example.aspx?file=http://XX.XXX.XX.XXX/Example.file?token=9dacfc85

如何获取file= 查询中包含的正确网址?

我正在使用以下[普遍完成上述工作]:

Uri.decode(urlString.getQueryParameter("file"));

这是正确的做法吗?


更新

我决定先对整个 URL 进行编码,不管其值如何,然后获取查询参数。从理论上讲,它应该可以工作。

【问题讨论】:

    标签: java android uri percent-encoding


    【解决方案1】:

    如果您不确定将获得的 URL 类型,那么我建议您对从参数中获得的每个 URL 进行解码。当您需要使用它时,您可以对其进行编码。

    据我所知,你做得对。

    【讨论】:

    • 不是这样的。我知道如何解码 URL。并且 URLDecoder AFAIK 已被弃用。但我无法确定在这两种情况下如何处理 URL 以及哪一种是正确的。
    猜你喜欢
    • 2018-09-20
    • 2020-04-10
    • 2018-01-28
    • 1970-01-01
    • 1970-01-01
    • 2013-09-10
    • 1970-01-01
    • 2018-09-15
    • 2012-12-19
    相关资源
    最近更新 更多