URL 字符串可以非常动态。 它可以有任意数量的参数和参数组合。 例如:
myHost?parm1=Data1&parm2=Data2&parm3=Data3
大多数解析例程在这种情况下都可以很好地实现,但是如果数据本身包含“&”怎么办? 例如:
myHost?parm1=Data1&1b&parm2=Data2&2b&parm3=Data3&3b
使用 StringTokenizer 或 URLEncoder 是一个全有或全无的过程。 由于参数名称可能会有所不同,因此它们不能用作搜索的一部分。 名称值对需要分解,包含“&”的数据需要保留如下:
parm1=Data1&1b
parm2=Data2&2b
parm3=Data3&3b
有什么关于实现这一点的 Java 建议吗?
最佳答案
查询字符串值中的
&
应采用百分比编码,如 %26
。在您的示例中,它们应该如下所示:
parm1=Data1%261b
parm2=Data2%262b
parm3=Data3%263b
因此,只需通过 &
即可轻松分割正确编码的 URL。
创建 URL 时,客户端程序必须对每个参数值进行 URL 编码。然后通过 =
连接键和(编码)值,并通过 &
连接键值对列表来格式化 URL。如果客户端程序不对参数值进行 URL 编码,则服务器程序将无法区分嵌入的 &
和值分隔符 &
。
关于java - 如何替换 URL 字符串中的特定 '&' 进行解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34321846/