Class DatabricksHttpClient

    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void close()  
      org.apache.http.client.methods.CloseableHttpResponse execute​(org.apache.http.client.methods.HttpUriRequest request)
      Executes the given http request and returns the response
      org.apache.http.client.methods.CloseableHttpResponse execute​(org.apache.http.client.methods.HttpUriRequest request, boolean supportGzipEncoding)
      Executes the given http request and returns the response
      <T> Future<T> executeAsync​(org.apache.hc.core5.http.nio.AsyncRequestProducer requestProducer, org.apache.hc.core5.http.nio.AsyncResponseConsumer<T> responseConsumer, org.apache.hc.core5.concurrent.FutureCallback<T> callback)
      Executes the given http request asynchronously and returns the future
    • Method Detail

      • execute

        public org.apache.http.client.methods.CloseableHttpResponse execute​(org.apache.http.client.methods.HttpUriRequest request,
                                                                            boolean supportGzipEncoding)
                                                                     throws DatabricksHttpException
        Description copied from interface: IDatabricksHttpClient
        Executes the given http request and returns the response
        Specified by:
        execute in interface IDatabricksHttpClient
        Parameters:
        request - underlying http request
        supportGzipEncoding - whether to support gzip encoding header
        Returns:
        http response
        Throws:
        DatabricksHttpException
      • executeAsync

        public <T> Future<T> executeAsync​(org.apache.hc.core5.http.nio.AsyncRequestProducer requestProducer,
                                          org.apache.hc.core5.http.nio.AsyncResponseConsumer<T> responseConsumer,
                                          org.apache.hc.core5.concurrent.FutureCallback<T> callback)
        Executes the given http request asynchronously and returns the future

        This method leverages the Apache Async HTTP client which uses non-blocking I/O, allowing for higher throughput and better resource utilization compared to blocking I/O. Instead of dedicating one thread per connection, it can handle multiple connections with a smaller thread pool, significantly reducing memory overhead and thread context switching.

        Specified by:
        executeAsync in interface IDatabricksHttpClient
        Type Parameters:
        T - type of the response
        Parameters:
        requestProducer - request producer
        responseConsumer - response consumer
        callback - future callback
        Returns:
        future