code: static String appendQueryParameters( final CharSequence url, final Map<?, ?> params ) {
          final String baseUrl = url.toString();
          if( params == null || params.isEmpty() )
              return baseUrl;
  
          final StringBuilder result = new StringBuilder(baseUrl);
  
          addPathSeparator(baseUrl, result);
          addParamPrefix(baseUrl, result);
  
          Entry<?, ?> entry;
          Object value;
          Iterator<?> iterator = params.entrySet().iterator();
          entry = (Entry<?, ?>) iterator.next();
          result.append(entry.getKey().toString());
          result.append('=');
          value = entry.getValue();
          if( value != null )
              result.append(value);
  
          while( iterator.hasNext() ) {
              result.append('&');
              entry = (Entry<?, ?>) iterator.next();
              result.append(entry.getKey().toString());
              result.append('=');
              value = entry.getValue();
              if( value != null )
                  result.append(value);
          }
  
          return result.toString();
      }
docs: Append given map as query parameters to the base URL
  <p>
  Each map entry's key will be a parameter name and the value's {@link Object#toString()} will be the parameter value.
  
  @param url
  @param params
  @return URL with appended query params