HttpWaitStrategy class

Waits until an HTTP endpoint inside the container returns an acceptable response.

On each poll attempt the strategy sends an HTTP request to the container and checks:

  1. The response status code (against forStatusCode or forStatusCodeMatching).
  2. Optionally, the response body (via forResponsePredicate).

Each individual request times out after 1 second. SocketException, TimeoutException, and http.ClientException are treated as transient failures.

Example:

container.waitingFor(
  HttpWaitStrategy(8080, path: '/health')
    .forStatusCode(200)
    ..withStartupTimeout(const Duration(seconds: 60)),
);
Inheritance

Constructors

HttpWaitStrategy(int port, {String path = '/'})
Creates an HttpWaitStrategy that probes port at path.
HttpWaitStrategy.fromUrl(String url)
Creates an HttpWaitStrategy from a full URL string.
factory

Properties

hashCode → int
The hash code for this object.
no setterinherited
path → String
The URL path to request. Always starts with /.
final
pollInterval ↔ Duration
Time between successive polling attempts.
getter/setter pairinherited
port → int
The container port to probe.
final
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
startupTimeout ↔ Duration
Maximum time to wait for the container to become ready.
getter/setter pairinherited
testHeaders → Map<String, String>
The current set of HTTP headers that will be sent with each probe request.
no setter
testMethod → String
The HTTP method that will be used for each probe request.
no setter
testStatusCodes → Set<int>
The set of HTTP status codes that are considered successful.
no setter

Methods

forResponsePredicate(bool predicate(String)) → HttpWaitStrategy
Adds an additional response body check on top of the status-code check.
forStatusCode(int code) → HttpWaitStrategy
Adds code to the set of acceptable HTTP status codes.
forStatusCodeMatching(bool matcher(int)) → HttpWaitStrategy
Replaces the status-code check with a custom matcher function.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
poll(Future<bool> check(), {List<Type>? transientExceptions}) → Future<bool>
Adaptive polling loop.
inherited
toString() → String
A string representation of this object.
inherited
usingTls({bool insecure = false}) → HttpWaitStrategy
Switches the request scheme to https.
waitUntilReady(WaitStrategyTarget target) → Future<void>
Polls the HTTP endpoint until an acceptable response is received.
override
withBasicCredentials(String username, String password) → HttpWaitStrategy
Sets HTTP Basic authentication credentials.
withBody(String body) → HttpWaitStrategy
Sets a request body to include with each probe request.
withHeader(String name, String value) → HttpWaitStrategy
Adds a custom HTTP request header.
withMethod(String method) → HttpWaitStrategy
Sets the HTTP method used for each probe request.
withPollInterval(Duration interval) → WaitStrategy
Sets the poll interval between readiness checks.
inherited
withStartupTimeout(Duration timeout) → WaitStrategy
Sets the maximum startup timeout.
inherited
withTransientExceptions(List<Type> exceptions) → WaitStrategy
Adds exceptions to the set of exception types that are treated as transient failures during polling.
inherited

Operators

operator ==(Object other) → bool
The equality operator.
inherited