@Nullable
    PooledChannel acquireNow(SessionProtocol desiredProtocol, PoolKey key) {
        PooledChannel ch;
        switch (desiredProtocol) {
            case HTTP:
                ch = acquireNowExact(key, SessionProtocol.H2C);
                if (ch == null) {
                    ch = acquireNowExact(key, SessionProtocol.H1C);
                }
                break;
            case HTTPS:
                ch = acquireNowExact(key, SessionProtocol.H2);
                if (ch == null) {
                    ch = acquireNowExact(key, SessionProtocol.H1);
                }
                break;
            default:
                ch = acquireNowExact(key, desiredProtocol);
        }
        return ch;
    }
@ Nullable PooledChannel acquireNow ( SessionProtocol desiredProtocol , PoolKey key ) { PooledChannel ch ; switch ( desiredProtocol ) { case HTTP : ch = acquireNowExact ( key , SessionProtocol . H2C ) ; if ( ch == null ) { ch = acquireNowExact ( key , SessionProtocol . H1C ) ; } break ; case HTTPS : ch = acquireNowExact ( key , SessionProtocol . H2 ) ; if ( ch == null ) { ch = acquireNowExact ( key , SessionProtocol . H1 ) ; } break ; default : ch = acquireNowExact ( key , desiredProtocol ) ; } return ch ; }
Attempts to acquire a {@link Channel} which is matched by the specified condition immediately.

@return {@code null} is there's no match left in the pool and thus a new connection has to be
requested via {@link #acquireLater(SessionProtocol, PoolKey, ClientConnectionTimingsBuilder)}.