有没有Java的http_build_query函数的Java等价物?

fal*_*lmp 8 php java http build

我有一个包含我的数据的Map,并希望用它构建一个查询字符串,就像我在PHP上使用http_build_query一样.我不确定这段代码是否是最好的实现,或者我忘记了什么?

public String toQueryString(Map<?, ?> data) throws UnsupportedEncodingException {
    StringBuffer queryString = new StringBuffer();

    for (Entry<?, ?> pair : data.entrySet()) {
        queryString.append ( URLEncoder.encode ( (String) pair.getKey (), "UTF-8" ) + "=" );
        queryString.append ( URLEncoder.encode ( (String) pair.getValue (), "UTF-8" ) + "&" );
    }

    if (queryString.length () > 0) {
        queryString.deleteCharAt ( queryString.length () - 1 );
    }

    return queryString.toString ();
}
Run Code Online (Sandbox Code Playgroud)

Vla*_*mir 6

查看QueryStringBuilder类及其测试类:

private String httpBuildQuery(Map<String, String> data)
        throws UnsupportedEncodingException {
    QueryStringBuilder builder = new QueryStringBuilder();
    for (Entry<String, String> pair : data.entrySet()) {
        builder.addQueryParameter(pair.getKey(), pair.getValue());
    }
    return builder.encode("UTF-8");
}
Run Code Online (Sandbox Code Playgroud)

  • 现在这是一个破碎的链接. (3认同)