NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #1332 most downloaded on pub.dev
A lightweight, simple plugin that allows you to intercept request and response objects and modify them if desired.
Last release 5 months ago
23 Apr 2026
Release timing varies
gaps range from 4 weeks to 1.8 years
Nearly every release is documented
notes for 16 of 16 stable releases
Nothing withdrawn
no release was ever pulled
7 years old
23 releases · first in 2019
@shittyday made their first contribution in #151
Full Changelog: 2.0.0...3.0.0
HttpInterceptor interface (replaces InterceptorContract). Same four methods with FutureOr support.InterceptedClient.build(...) and InterceptedHttp.build(...) with interceptors, client, retryPolicy, requestTimeout, onRequestTimeout.params and paramsAll on get, post, put, patch, delete, head; merged into URL query.String.toUri() extension. Uri.addQueryParams(params: ..., paramsAll: ...) extension.Response JSON decoding extension (response.jsonMap, response.jsonList, response.jsonBody, etc.).http_interceptor_io.dart for IOClient (VM/mobile/desktop; do not use on web).RequestData/ResponseData. Use BaseRequest/BaseResponse only; no copyWith in core.qs_dart and validators (not used in v3).One column per quarter.
Fix type 'Response' is not a subtype of type 'StreamedResponse' in type cast by @wilinz in #132
Beta Changelog: 2.0.0-beta.7...2.0.0
Full Changelog: 1.0.2...2.0.0
Beta Changelog: https://github.com/CodingAleCR/http_interceptor/compare/2.0.0-beta.8...2.0.0
Full Changelog: https://github.com/CodingAleCR/http_interceptor/compare/1.0.2...2.0.0
Fix type 'Response' is not a subtype of type 'StreamedResponse' in type cast by @wilinz in #132
docs: add ntimesc as a contributor for ideas by @allcontributors in #116
Full Changelog: 2.0.0-beta.6...2.0.0-beta.7
Full Changelog: https://github.com/CodingAleCR/http_interceptor/compare/2.0.0-beta.6...2.0.0-beta.7
✨ Added: Future<bool> shouldInterceptRequest() and Future<bool> shouldInterceptResponse() . This enables individual interceptor checks and conditional
Future<bool> shouldInterceptRequest() and Future<bool> shouldInterceptResponse(). This enables individual interceptor checks and conditional intercepting configurations.bodyBytes to Request.copyWith. This adds support to set and modify the body as a stream of bytes.RetryPolicy to be Future<bool> instead of bool so that you can support different exception retrying scenarios (See #115).MultipartRequest handling.Full Changelog: 2.0.0-beta.5...2.0.0-beta.6
Future<bool> shouldInterceptRequest() and Future<bool> shouldInterceptResponse(). This enables individual interceptor checks and conditional intercepting configurations.bodyBytes to Request.copyWith. This adds support to set and modify the body as a stream of bytes.RetryPolicy to be Future<bool> instead of bool so that you can support different exception retrying scenarios (See #115).MultipartRequest handling.✨ Added: request timeout handler by @javiermrz in #108
Full Changelog: 2.0.0-beta.4...2.0.0-beta.5
onRequestTimeout when setting up requestTimeout on the interceptor.❗️🛠 Changed: shouldAttemptRetryOnException will now also pass the BaseRequest .
shouldAttemptRetryOnException will now also pass the BaseRequest.MultipartRequest does not get intercepted correctly (has missing fields).MultipartRequest ignores retry policy.body causes the headers to change and ignore previous interceptions (i.e. content-type headers are overridden).copyWith was missing fieldsFull Changelog: 2.0.0-beta.2...2.0.0-beta.4
shouldAttemptRetryOnException will now also pass the BaseRequest.fix: intercepting body causes headers to be reset
Full Changelog: 2.0.0-beta.1...2.0.0-beta.2
body causes that the headers also change and ignore previous interceptions (i.e. content-type headers are overriden).❗️🛠 Changed: Renamed Method to use HttpMethod and refactored helper functions into extensions ( StringToMethod , and MethodToString ).
Method to use HttpMethod and refactored helper functions into extensions (StringToMethod, and MethodToString).InterceptorContract to use BaseRequest and BaseResponse instead of custom models.RequestData and ResponseData since the classes are no longer used.Request,StreamedRequest and MultipartRequest.Response,StreamedResponse and MultipartRequest.BaseRequest, Request,StreamedRequest and MultipartRequest that allows copying requests through a copyWith method.BaseResponse, Response,StreamedResponse and IOStreamedResponse that allows copying responses through a copyWith method.Full Changelog: 1.0.2...2.0.0-beta.1
Method to use HttpMethod and refactored helper functions into extensions (StringToMethod, and MethodToString).InterceptorContract to use BaseRequest and BaseResponse instead of custom models.RequestData and ResponseData since the classes are no longer used.Request,StreamedRequest and MultipartRequest.Response,StreamedResponse and MultipartRequest.BaseRequest, Request,StreamedRequest and MultipartRequest that allows copying requests through a copyWith method.BaseResponse, Response,StreamedResponse and IOStreamedResponse that allows copying responses through a copyWith method.📖 Changed: example project to showcase RetryPolicy usage. 🐞 Fixed: parameters were missing in requests of type POST, PUT, PATCH, and DELETE. 🐞 Fixed:
📖 Changed: example project to showcase RetryPolicy usage.
🐞 Fixed: parameters were missing in requests of type POST, PUT, PATCH, and DELETE.
🐞 Fixed: int or other non-string parameters are not being added to request. Thanks to @ Contributor meysammahfouzi
🐞 Fixed: body is not sent in delete requests despite being accepted as parameter. Thanks to @MaciejZuk
RetryPolicy usage.parameters were missing in requests of type POST, PUT, PATCH, and DELETE.int or other non-string parameters are not being added to request. Thanks to @meysammahfouzibody is not sent in delete requests despite being accepted as parameter. Thanks to @MaciejZuk✨ Changed: ResponseData now has request to allow checking on the request that triggered the response. Thanks to @II11II
ResponseData now has request to allow checking on the request that triggered the response. Thanks to @II11IIqueryParametersAll when creating RequestData. Thanks to @Mawi137README to include required keywords needed. Thanks to @meysammahfouziCheck out the 1.0.0 migration guide for information on how to migrate your code.
Check out the 1.0.0 migration guide for information on how to migrate your code.
HttpClientWithInterceptor to InterceptedClient.HttpWithInterceptor to InterceptedHttp.badCertificateCallback from InterceptedClient and InterceptedHttp in order to fully support Flutter Web 🌐 . In order to use refer to the migration guide.RequestData following a similar principle than http's queryParametersAll .ResponseData now has bodyBytes to allow encoding or decoding in the format desired.test package instead of flutter_test.🛠 Changed: Pre initialized headers and params on RequestData. This was a missed change on null-safety migration.
headers and params on RequestData. This was a missed change on null-safety migration.Check out our 0.4.0 migration guide for information on how to migrate your code.
Check out our 0.4.0 migration guide for information on how to migrate your code.
toUri() usage when importing the library. Since http dropped support for string url usage and since Dart does not yet support function overloading, we had to implement an alternative through extensions.badCertificateCallback and findProxy features are not supported on Flutter Web due to browser limitations)http to 0.13.0.effective_dart to 1.3.0.sdk to >=2.12.0 <3.0.0. (Yay! Sound null safety! 🎉)meta is removed since Dart's null safety now covers all uses inside this plugin🛠 Changed: Plugin no longer depends on the flutter/foundation.dart, instead it uses meta plugin which allows for usage on non flutter environments.
flutter/foundation.dart, instead it uses meta plugin which allows for usage on non flutter environments.badCertificateCallback is now available to use without the experimental tag.🛠 Changed: Example now showcases exception handling.
🐞 Fixed: Retry Policy's shouldAttemptRetryOnResponse was synchronous which would not allow async token updates.
shouldAttemptRetryOnResponse was synchronous which would not allow async token updates.HttpClientWithInterceptor.http Response class, which would force plugin users to add http plugin separately.badCertificateCallback allows you to use self-signing certificates.✨ Added: RetryPolicy. It allows to attempt retries on a request when an exception occurs or when a condition from the response is met.
✨ Added: Unit testing for a few of the files.
get.🐞 Fixed: HTTP Methods have misaligned parameters. Now they are called via named parameters to avoid type mismatch exceptions when being used.
✨ Added: Query Parameters to GET requests, it allows you to set proper parameters without having to add them to the URL beforehand.
✨ Added: Documentation for the example.
✨ Added: Initial plugin implementation.
Your coding agent can read these notes before it upgrades. Set up the MCP server →