【问题标题】:How to get parameters out of a url encoded string (not a URL) in java如何从java中的url编码字符串(不是URL)中获取参数
【发布时间】:2011-07-20 17:45:06
【问题描述】:

我有一个从我正在使用的 API 返回的 url 编码字符串。我想对字符串做一些 request.getParameter("paramname") 。我正在寻找类似 str.request.getParameter("paramname") 的东西。应该有这样的吧?

说明 api 返回如下内容: name1=val1&name2=val2&name3=val3

我知道我可以对“&”进行拆分,然后遍历每个元素,但这似乎很愚蠢。请指教。谢谢!

【问题讨论】:

标签: java


【解决方案1】:

使用 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.

【讨论】:

    【解决方案2】:

    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");
    

    【讨论】:

    • 这个问题似乎没有解决我的问题。我说我不想拆分。
    • 基本上你说的是“不”。
    • 有很多答案,例如使用apache库或码头库,然后它们会为您拆分和编码。
    • 呃哦,是的,你是对的。有这个可以看看:hc.apache.org/httpcomponents-client-ga/httpclient/apidocs/org/…
    • 显然那个包不存在?
    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 2011-05-15
    • 2016-12-03
    • 1970-01-01
    • 2012-06-02
    相关资源
    最近更新 更多