addQueryParameter method

  1. @useResult
Uri addQueryParameter(
  1. String key,
  2. String? value
)

Returns a new URI with the key query parameter set to value.

If value is null or empty, the parameter is removed instead.

Example:

Uri.parse('https://example.com').addQueryParameter('page', '1');
// Returns: https://example.com?page=1
Uri.parse('https://example.com?a=1').addQueryParameter('b', '2');
// Returns: https://example.com?a=1&b=2

Audited: 2026-06-12 11:26 EDT

Implementation

@useResult
Uri addQueryParameter(String key, String? value) {
  if (key.isEmpty) {
    return this;
  }

  final Map<String, dynamic> params = Map<String, dynamic>.from(queryParameters);
  if (value == null || value.isEmpty) {
    params.remove(key);
  } else {
    params[key] = value;
  }

  return replace(queryParameters: params);
}