URLEncodedUtils.parse的任何原因都返回List< NameValuePair>

时间:2014-03-31 18:10:02

标签: url-encoding keyvaluepair

https://hc.apache.org/httpcomponents-client-4.3.x/httpclient/apidocs/org/apache/http/client/utils/URLEncodedUtils.html#parse(java.net.URI,%20java.lang.String)

为什么不返回Map<字符串,列表<字符串> >

如果它返回Map,用户可以通过键轻松查询以获得他们想要的任何内容。 否则用户应该迭代整个列表以找到他们想要的内容。

由于

1 个答案:

答案 0 :(得分:0)

因为这是列表。如果仔细阅读说明,请说:

  

返回从URI的查询部分构建的NameValuePairs的列表。例如,URI http://example.org/path/to/file?a=1&b=2&c=3将返回三个NameValuePairs的列表,一个用于a = 1,一个用于b = 2,一个用于c = 3.

这意味着您无法使用列表按值访问,因为这些类型的数据结构并未针对此进行设计。他们没有任何"关键"使用。

在这个网站上,Jon Skeet写了一个非常明确的答案,你不能使用快捷方式使用名称或密钥或类似结构来访问List<NameValuePair>值。

您可以在此处查看帖子:Get ArrayList<NameValuePair> value by name

在同一篇文章中,您会看到解决问题的不同选项。 (或者可以指导您找到解决方案)