使用HTTPclient解析查询字符串以提取nameValuePairs

Muh*_*edy 7 java apache url tomcat decoding

是否有Apache实用程序采用查询字符串和一些编码并返回键的映射,值[] url解码?

mdm*_*dma 8

它已被弃用,但您可以使用HttpUtils.parseQueryString.

它将参数名称映射到值.如果参数出现多次,则该值为数组.

编辑:不推荐使用上述方法,因为它不允许您指定字符编码.

apache的HttpClient项目具有实现此目的所需的类.

使用URIUtil.decode(字符串数据,字符串编码)来解码查询字符串.

然后使用ParameterParser.parse(String query,char separator)获取NameValuePair的列表.然后,您可以将它们放入Commons Collections MultiMap中,并按参数名称键入.(您可以使用常规哈希映射,但这需要更多代码来处理每个键的多个值.)

  • http://www.docjar.com/docs/api/org/apache/catalina/util/RequestUtil.html#parseParameters%28Map,%20byte,%20String%29怎么样? (2认同)

Jos*_*nta 8

如果您使用的是4.x版本的HttpClient,则需要使用URLEncodedUtils.parse().它需要一个URI(或字符串+ charset)并返回一个NameValuePairs列表.