我有一个包含我的数据的 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 ();
}
最佳答案
看看QueryStringBuilder类及其 test class :
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");
}
关于java - 是否有任何与 PHP 的 http_build_query 函数等效的 Java?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/636770/