如何从java中的url编码字符串(不是URL)中获取参数

时间:2011-03-22 18:24:22

标签: java

我有一个从我正在使用的API返回的url编码字符串。我想在字符串上做一些request.getParameter(“paramname”)。我正在寻找的是像str.request.getParameter(“paramname”)。有这样的事情吗?

澄清api返回的内容如下: NAME1 = VAL1&安培;名称2 = val2的&安培; NAME3 = VAL3

我知道我可以分开“&”然后浏览每个元素,但这似乎很愚蠢。请指教。谢谢!

2 个答案:

答案 0 :(得分:2)

使用Apache httpclient库中的URLEncodedUtils。

API:http://hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/apache/http/client/utils/URLEncodedUtils.html

您必须调用此方法来获取名称值对:

static List<NameValuePair>  parse(HttpEntity entity)
          Returns a list of NameValuePairs as parsed from an HttpEntity.

答案 1 :(得分:0)

请参阅this question

那里有一个答案:

import org.eclipse.jetty.util.*;

MultiMap<String> params = new MultiMap<String>();
UrlEncoded.decodeTo("foo=bar&bla=blub", params, "UTF-8");

assert params.getString("foo").equals("bar");
assert params.getString("bla").equals("blub");