public ContentChannel connect(ResponseHandler responseHandler) {
        try {
            Objects.requireNonNull(responseHandler, "responseHandler");
            RequestHandler requestHandler = container().resolveHandler(this);
            if (requestHandler == null) {
                throw new BindingNotFoundException(uri);
            }
            requestHandler = new ProxyRequestHandler(requestHandler);
            ContentChannel content = requestHandler.handleRequest(this, responseHandler);
            if (content == null) {
                throw new RequestDeniedException(this);
            }
            return content;
        }
        catch (Throwable t) {
            cancel();
            throw t;
        }
    }
<p>Attempts to resolve and connect to the {@link RequestHandler} appropriate for the {@link URI} of this Request.
An exception is thrown if this operation fails at any point. This method is exception-safe.</p>

@param responseHandler The handler to pass the corresponding {@link Response} to.
@return The {@link ContentChannel} to write the Request content to.
@throws NullPointerException     If the {@link ResponseHandler} is null.
@throws BindingNotFoundException If the corresponding call to {@link Container#resolveHandler(Request)} returns
                                 null.
jdisc_core/src/main/java/com/yahoo/jdisc/Request.java