package com.droidworks.http; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.util.HashMap; import java.util.Map; /** * Builds a URL based on a base URL and GET params. */ public class UrlBuilder { private String mBase; private Map<String, String> mMap = new HashMap<String, String>(); public UrlBuilder(String base) { mBase = base; } /** * Append a GET param to the base URL. * * @param key the param name * @param val the param value */ public UrlBuilder appendParam(String key, String val) { if (val != null && val.length() > 0) mMap.put(key, val); return this; } /** * Append a GET param to the base URL. * * @param key the param name * @param val the param value */ public UrlBuilder appendParam(String key, int val) { return appendParam(key, Integer.toString(val)); } /** * Gets a standard URL using the base and all appended values. * * @return the fully build URL */ public String getUrl() { if (mMap.size() == 0) return mBase; StringBuilder url = new StringBuilder(mBase + "?"); for (String key : mMap.keySet()) { try { url.append(key + "=" + URLEncoder.encode(mMap.get(key), "UTF-8") + "&"); } catch (UnsupportedEncodingException e) {} } String out = url.toString(); return url.toString().substring(0, out.length() - 1); } @Override public String toString() { return getUrl(); } }