URLEncodedUtils.parse 返回 URL 本身作为第一个条目。我做错了什么?

问题描述 投票:0回答:1

我尝试获取redirectUri 的查询参数。所以我尝试了 URLEncodedUtils 帮助器。

List<NameValuePair> parse = URLEncodedUtils.parse(redirectedTo, Charset.defaultCharset());

它工作正常,但结果是。

https://my.redirect.de/foo?code=123&state=123

我有一份清单

[{name:https://my.redirect.de/foo?code, value: 123}, {name:state, value:123}]

这不是最理想的。我做错了什么?当我第一次必须从 URL 中分离参数时,辅助类并没有多大帮助。有什么建议欢迎欢迎

java apache
1个回答
0
投票

在文档中指出 返回使用给定字符编码从给定字符串解析的 NameValuePairs 列表。按照惯例,“&”和“;”被接受作为参数分隔符。

所以问号不是分隔符,因此 URL 部分没有区别。

我不知道你在什么上下文中使用它,但通常在 Java 中,有一些方法可以检索查询字符串,然后你可以将其传递给你的方法。

我会做什么:

URL url = new URL("https://my.redirect.de/foo?code=123&state=123");
String queryString = url.getQuery();
List<NameValuePair> parse = URLEncodedUtils.parse(queryString, Charset.defaultCharset());
© www.soinside.com 2019 - 2024. All rights reserved.