Sob*_*nty 5 java url urlencode
无法解析带有 # 的 url 的查询字符串参数。
http://www.example.com/txn/#/user/399AC2F1BB3241823B5E48205C0657FC?utm_source=campaign&utm_medium=testmedium&page=user
Run Code Online (Sandbox Code Playgroud)
URLEncodedUtils.parse 返回零结果。
甚至 URL.getQuery() 也给出 null。
任何通过从 url 中显式删除 # 来解析它的方法。
之后的一切#都是碎片。
URL 的构建方式如下(来自Wikipedia):
scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]
Run Code Online (Sandbox Code Playgroud)
您的 URL 分解为(使用URL,方案称为协议,片段称为ref):
scheme = http
host = www.example.com
path = txn/
query =
fragment = /user/399AC2F1BB3241823B5E48205C0657FC?utm_source=campaign&utm_medium=testmedium&page=user
Run Code Online (Sandbox Code Playgroud)
此外,如果您将该 URL 输入到 Web 浏览器中,该片段将由浏览器处理,而不是发送到服务器。
如果您确实想要 a#作为路径组件,则需要对其进行%编码:
http://www.example.com/txn/%23/user/399AC2F1BB3241823B5E48205C0657FC?utm_source=campaign&utm_medium=testmedium&page=user
Run Code Online (Sandbox Code Playgroud)
这将分解(并解码)为:
scheme = http
host = www.example.com
path = txn/#/user/399AC2F1BB3241823B5E48205C0657FC
query = utm_source=campaign&utm_medium=testmedium&page=user
fragment =
Run Code Online (Sandbox Code Playgroud)
提取查询后,您可以使用URLEncodedUtils.parse. parse不适用于整个 URL。
| 归档时间: |
|
| 查看次数: |
1438 次 |
| 最近记录: |