code: static String appendQueryParameters( final CharSequence url, final Object... params ) {
          final String baseUrl = url.toString();
          if( params == null || params.length == 0 ) {
              return baseUrl;
          }
  
          if( params.length % 2 != 0 ) {
              throw new IllegalArgumentException("Must specify an even number of parameter names/values");
          }
  
          final StringBuilder result = new StringBuilder(baseUrl);
  
          addPathSeparator(baseUrl, result);
          addParamPrefix(baseUrl, result);
  
          Object value;
          result.append(params[0]);
          result.append('=');
          value = params[1];
          if( value != null )
              result.append(value);
  
          for( int i = 2; i < params.length; i += 2 ) {
              result.append('&');
              result.append(params[i]);
              result.append('=');
              value = params[i + 1];
              if( value != null ) {
                  result.append(value);
              }
          }
  
          return result.toString();
      }
docs: Append given name/value pairs as query parameters to the base URL
  <p>
  The params argument is interpreted as a sequence of name/value pairs so the given number of params must be divisible by 2.
  
  @param url
  @param params
  name/value pairs
  @return URL with appended query params