Interface HttpClient

  • All Superinterfaces:
    AutoCloseable, Closeable

    public interface HttpClient
    extends Closeable
    An SPI interface for HTTP Client implementations. A HttpClientProvider is loaded during construction of a new HTTP Client. The first available provider is selected and its HttpClientProvider.newHttpClient(org.forgerock.util.Options) method invoked in order to construct and configure a new HttpClient.

    It is the responsibility of the caller to close the request and response messages.

         
         HttpClient client = ...
         try (Response response = client.sendAsync(...).getOrThrow()) {
           // consumes the response completely
         }
         
     

    Note: Callers should not use try-with-resources pattern if they forward the response asynchronously (using a Promise for instance): the message would be emptied before the callbacks are applied.

    • Method Detail

      • sendAsync

        Promise<Response,​NeverThrowsException> sendAsync​(Request request)
        Returns a Promise representing the asynchronous Response of the given request. If any (asynchronous) processing goes wrong, the promise still contains a Response (probably from the 4xx or 5xx status code family).

        The returned Promise contains the response returned from the server as-is. This is responsibility of the client to produce the appropriate error response (404, 500, ...) in case of processing or transport errors.

        Parameters:
        request - The HTTP request to send.
        Returns:
        A promise representing the pending HTTP response.
      • close

        void close()
            throws IOException
        Completes all pending requests and release resources associated with underlying implementation.
        Specified by:
        close in interface AutoCloseable
        Specified by:
        close in interface Closeable
        Throws:
        IOException - if an I/O error occurs