protected String createApiPostData(final Map<String, String> params) {
		// TODO Make a version that allows forcing a param to be sent last
		final StringBuilder result = new StringBuilder();
		boolean first = true;
		if (params != null) {
			for (final Map.Entry<String, String> param : params.entrySet()) {
				if (param.getValue() != null) {
					try {
						if (!first) {
							result.append('&');
						}
						result.append(URLEncoder.encode(param.getKey(), "UTF-8")).append('=').append(URLEncoder.encode(param.getValue(), "UTF-8"));
						first = false;
					} catch (final UnsupportedEncodingException shouldNeverHappen) {
						throw new InternalError("UTF-8 is not supported by this Java VM");
					}
				}
			}
		}
		return result.toString();
	}