gpt4 book ai didi

java - 无法使用 # url 解析查询参数

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:54:10 27 4
gpt4 key购买 nike

无法解析带有 # 的 url 的查询字符串参数。

http://www.example.com/txn/#/user/399AC2F1BB3241823B5E48205C0657FC?utm_source=campaign&utm_medium=testmedium&page=user

URLEncodedUtils.parse 返回零结果。

甚至 URL.getQuery() 也返回 null。

通过从 url 中显式删除 # 来解析它的任何方法。

最佳答案

# 之后的所有内容都是一个片段

URL 是这样构建的(来自 Wikipedia ):

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]

您的 URL 分解为(使用 URL方案 称为协议(protocol)片段 称为ref ):

scheme   = http
host = www.example.com
path = txn/
query =
fragment = /user/399AC2F1BB3241823B5E48205C0657FC?utm_source=campaign&utm_medium=testmedium&page=user

此外,如果您将该 URL 输入网络浏览器,片段 将由浏览器处理,不会发送到服务器。


如果你真的想要一个 # 作为路径组件,它需要被 % 编码:

http://www.example.com/txn/%23/user/399AC2F1BB3241823B5E48205C0657FC?utm_source=campaign&utm_medium=testmedium&page=user

这将分解(并解码)为:

scheme   = http
host = www.example.com
path = txn/#/user/399AC2F1BB3241823B5E48205C0657FC
query = utm_source=campaign&utm_medium=testmedium&page=user
fragment =

提取查询后,您可以使用 URLEncodedUtils.parseparse 不是针对整个 URL。

关于java - 无法使用 # url 解析查询参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36604037/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com