【发布时间】:2014-01-27 05:37:36
【问题描述】:
我正在使用 apache commons HTTPClient 来下载 Web 资源。这些资源的 URI 来自第三方,我不生成。
commons httpclient 要求将 URI 对象提供给 GetMethod 对象。
URI 构造函数接受一个字符串(用于 uri)和一个布尔值,指定它是否被转义。
目前,我正在执行以下操作以确定我给出的原始网址是否已经转义...
boolean isEscaped = URIUtil.getPathQuery(originalUrl).contains("%");
m.setURI(new URI(originalUrl, isEscaped));
这是确定 uri 是否已转义的正确方法吗?
更新...
根据维基百科(好吧,根据维基百科(http://en.wikipedia.org/wiki/Percent-encoding),它说百分比是一个保留字符,应该始终被编码......我在这里逐字引用......
对百分比字符进行百分比编码[编辑] 因为百分比 ("%") 字符用作百分比编码八位字节的指示符,它必须 被百分比编码为“%25”,以便将该八位字节用作 URI。
这是否意味着您永远不能在有效的 uri 中使用裸 '%' 字符?
此外,uri(s) 来自各种来源,因此我无法确定它们是被转义还是未转义。
【问题讨论】:
标签: uri apache-commons-httpclient