java - 是否有任何与 PHP 的 http_build_query 函数等效的 Java?

标签 java php 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 ();
}

最佳答案

看看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/

相关文章:

java - 如何通过移动手机进行更改

php - 使用 Zend 创建自定义 oAuth 服务器

php - PHP 7.2 中 SELECT 后 PDO::lastInsertId 重置

http - 在 Haskell 中发送带有 header 的 GET 请求

Android 应用程序无法通过代理连接到模拟器中的本地 IP

http - 如何将golang中的http请求发送到我自己的服务器

java - 如何在Google Vision Camera Source上设置矩形对焦区域?

java - 如何使用 Java 写入麦克风输入?

javascript - 如何在Leaflet JS中获取外部URL JSON

java - 重写 ArrayList 类 - Java