Java 如何将http请求参数字符串转换为列表<;NameValuePair>;

Java 如何将http请求参数字符串转换为列表<;NameValuePair>;,java,apache-commons,Java,Apache Commons,我有一根像 String input = "grant_type=client_credentials&scope=complexScope"; 我想解析这些请求参数,然后将它们添加到Apache commons的NameValuePair列表中 我创建了这个函数,它在技术上通过字符串拆分工作 public static List<NameValuePair> stringToNameValuePair(String input) { return A

我有一根像

String input = "grant_type=client_credentials&scope=complexScope";
我想解析这些请求参数,然后将它们添加到Apache commons的NameValuePair列表中

我创建了这个函数,它在技术上通过字符串拆分工作

public static  List<NameValuePair> stringToNameValuePair(String input) {
return Arrays.stream(input.split("&"))
        .map(pair -> new NameValuePair(pair.split("=")[0], pair.split("=")[1]))
        .collect(Collectors.toList());
}
公共静态列表stringToNameValuePair(字符串输入){
返回Arrays.stream(input.split(“&”))
.map(对->新名称值对(对.split(“”[0],对.split(“”[1]))
.collect(Collectors.toList());
}

这似乎可以解决简单的问题,但我想知道java或任何已知库中是否已经有内置的、经过更多测试的方法。

答案是:在没有库的情况下为您提供适当的方法。如果您想使用库,
SpringWeb
提供了
UriComponentsBuilder
,它将使用
UriComponentsBuilder.fromURI字符串(“?a=b&c=d”).build().getQueryParams()返回一个
多值映射@BeUndead很近了,谢谢。在这种情况下,我没有完整的URL,我可以通过添加URL来使用这里列出的解决方案部分,并在其余的方法调用中使用您的
输入
变量。似乎您正在尝试重新实现OAuth2,您还应该使用库(或整个堆栈)来实现它。@chrylis小心地选择-是的。。这不是看起来的。。。。。。