code: @Override
      public Socket open(Request request, long timeout, TimeUnit tu) throws IOException {
          this.request = request;
          RequestBuilder r = new RequestBuilder();
          r.setUrl(request.uri())
                  .setMethod(request.method().name())
                  .setHeaders(request.headers())
                  .setQueryParams(decodeQueryString(request));
  
          List<Transport> transports = getTransport(r, request);
  
          return connect(r, transports, timeout, tu);
      }
docs: {@inheritDoc}