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

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

我发现apache httpcomponents是一个可靠的多function库,用于处理Java中的HTTP。 但是,这是一个示例类,可能足以构建URL查询字符串:

 import java.net.URLEncoder; public class QueryString { private String query = ""; public QueryString(HashMap 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 map = new HashMap(); map.put("hello", "world"); map.put("lang", "en"); QueryString q = new QueryString(map); System.out.println(q); // => "hello=world&lang=en" 

尝试使用 Apache Http Compoments (HttpClient 4)中的URIBuilder 。

它实际上并不占用地图,但非常适合构建URI。

有这个在线,所以你可以简单地调用以下任何一个:

 InputStream serverInput = post(URL url, Map parameters); InputStream serverInput = post(URL url, Map parameters); InputStream serverInput = post(URL url, Map cookies, Map parameters); InputStream serverInput = post(URL url, String[] cookies, Object[] parameters); InputStream serverInput = post(URL url, Object[] parameters). 

他也提供了源代码。