@Override
 public RibbonResponse execute(RibbonRequest request, IClientConfig configOverride)
     throws IOException {
   Request.Options options;
   if (configOverride != null) {
     options =
         new Request.Options(
             configOverride.get(CommonClientConfigKey.ConnectTimeout, this.connectTimeout),
             (configOverride.get(CommonClientConfigKey.ReadTimeout, this.readTimeout)));
   } else {
     options = new Request.Options(this.connectTimeout, this.readTimeout);
   }
   Response response = request.client().execute(request.toRequest(), options);
   return new RibbonResponse(request.getUri(), response);
 }
 @Override
 public RequestSpecificRetryHandler getRequestSpecificRetryHandler(
     RibbonRequest request, IClientConfig requestConfig) {
   if (this.clientConfig.get(CommonClientConfigKey.OkToRetryOnAllOperations, false)) {
     return new RequestSpecificRetryHandler(true, true, this.getRetryHandler(), requestConfig);
   }
   if (!request.toRequest().method().equals("GET")) {
     return new RequestSpecificRetryHandler(true, false, this.getRetryHandler(), requestConfig);
   } else {
     return new RequestSpecificRetryHandler(true, true, this.getRetryHandler(), requestConfig);
   }
 }