java - 是否有用于处理构建 URL 的 Java 包?

标签 java url

我正在寻找的是 Java 中的一些代码,它将采用 Map 对象并将其转换为我可以附加到我返回的 URL 的查询字符串。我确信有一个图书馆可以做到这一点以及更多,但我无法通过快速谷歌搜索找到它。有人知道会这样做吗?

最佳答案

我找到了 apache httpcomponents成为用于处理 Java 中的 HTTP 的可靠且多功能的库。但是,这里有一个示例类,它可能足以构建 URL 查询字符串:

import java.net.URLEncoder;

public class QueryString {

    private String query = "";

    public QueryString(HashMap<String, String> map) {
        Iterator it = mp.entrySet().iterator();
        while (it.hasNext()) {
            Map.Entry pairs = (Map.Entry)it.next();
            query += URLEncoder.encode(pairs.getKey(), "utf-8") + "=" +
            URLEncoder.encode(pairs.getValue(), "utf-8");
            if (it.hasNext()) { query += "&"; }
        }
    }

    public QueryString(Object name, Object value) {
        query = URLEncoder.encode(name.toString(), "utf-8") + "=" +
            URLEncoder.encode(value.toString(), "utf-8");
    }

    public QueryString() { query = ""; }

    public synchronized void add(Object name, Object value) {
        if (!query.trim().equals("")) query += "&";
        query += URLEncoder.encode(name.toString(), "utf-8") + "=" +
            URLEncoder.encode(value.toString(), "utf-8");
    }

    public String toString() { return query; }
}

用法:

HashMap<String, String> map = new HashMap<String, String>();
map.put("hello", "world");
map.put("lang", "en");

QueryString q = new QueryString(map);
System.out.println(q);
// => "hello=world&lang=en"

关于java - 是否有用于处理构建 URL 的 Java 包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1861620/

相关文章:

java - 前缀表达式计算错误 - Java

java - 运行运行tomcat的docker实例并部署到这个tomcat应用程序是否正常?

http - URL中的参数分隔符,误用问号的情况

c++ - 使用 `QUrl` 作为文件路径提供给 `std::fstream`

python - 登录 Django 后无法将用户重定向到下一页

java - 文件实用程序搜索实现

java - 虚拟线程是否在其被阻塞的同一承载线程中唤醒?

java - 如何使用jdk内置的android浏览器渲染网页?

iphone - 将 URL(作为字符串)添加到数组时出现问题

python - 使用 Python 请求库构建 URL