code: protected HttpRequestRetryHandler buildRequestRetryHandler(int retryCount, 
  			boolean requestSentRetryEnabled, boolean retryUnknownHostException, boolean retryConnectException, 
  			BackoffStrategy backoffStrategy, WaitStrategy waitStrategy,
  			IdempotentPredicate idempotentPredicate, Class<? extends IOException>... excludeExceptions){
  		List<Class<? extends IOException>> excluded = new ArrayList<Class<? extends IOException>>();
  		excluded.add(InterruptedIOException.class);
  		excluded.add(SSLException.class);
  		if (!retryUnknownHostException){
  			excluded.add(UnknownHostException.class);
  		}
  		if (!retryConnectException){
  			excluded.add(ConnectException.class);
  		}
  		if (excludeExceptions != null){
  			for (Class<? extends IOException> claz: excludeExceptions){
  				excluded.add(claz);
  			}
  		}
  		return new CustomHttpRequestRetryHandler(retryCount, requestSentRetryEnabled, excluded, backoffStrategy, waitStrategy, idempotentPredicate);
  	}
docs: Build a <code>HttpRequestRetryHandler</code>.
  The returned <code>HttpRequestRetryHandler</code> will not retry on <code>InterruptedIOException</code> and <code>SSLException</code>.
  @param retryCount		how many times to retry; 0 means no retries
  @param backoffStrategy	how should retries to backoff from previous ones
  @param waitStrategy		how should the delay between retries to be implemented
  @param requestSentRetryEnabled	true if it's OK to retry requests that have been sent
  @param retryUnknownHostException	true if retry should happen after UnknownHostException
  @param retryConnectException		true if retry should happen after ConnectException
  @param idempotentPredicate		Predicate to decide which requests are considered to be retry-able,
  if it is null, only <code>GET</code> requests are considered to be retry-able.
  @param excludeExceptions			the IOException types that should not be retried
  @return	the <code>HttpRequestRetryHandler</code>