sS makePostData(Map map) { new StringBuilder buf; for (Map.Entry e : castMapToMapO(map).entrySet()) { S key = cast e.getKey(); O val = e.getValue(); if (val != null) { S value = str(val); if (nempty(buf)) buf.append("&"); buf.append(urlencode(key)).append("=").append(urlencode(/*escapeMultichars*/(value))); } } ret str(buf); } sS makePostData(O... params) { new StringBuilder buf; int n = l(params); for (int i = 0; i+1 < n; i += 2) { S key = cast params[i]; O val = params[i+1]; if (val != null) { S value = str(val); if (nempty(buf)) buf.append("&"); buf.append(urlencode(key)).append("=").append(urlencode(/*escapeMultichars*/(value))); } } ret str(buf); }