NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #29 most downloaded on pub.dev
A composable, multi-platform, Future-based API for HTTP requests.
Last release 11 months ago
10 Nov 2025
Ships fairly regularly
a new release about every 2 months
Most releases are documented
notes for 48 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
14 years old
130 releases · first in 2012
Breaking Change the behavior of Request.body so that a charset parameter is only added for text and XML media types. This brings the behavior of packa…
Request.body so that a charset
parameter is only added for text and XML media types. This brings the
behavior of package:http in line with RFC-8259.StreamSubscriptions of response bodies
waiting for the next chunk.MediaType from package:http_parser.README.md.Fixed a bug in IOClient where the HttpClient 's response stream was cancelled after the response stream was completed.
IOClient where the HttpClient's response stream wasOne column per quarter.
Nothing published for this version
Nothing published for this version
Fixed default encoding for application/json without a charset to use utf8 instead of latin1, ensuring proper JSON decoding.
window in BrowserClient, restoring support for web
workers and NodeJS.Fixed unintended HTML tags in doc comments.
BrowserClient to use Fetch API instead of XMLHttpRequest.Require package web: '>=0.5.0 <2.0.0'.
web: '>=0.5.0 <2.0.0'.* Require Dart ^3.3 * Require package:web ^0.5.0.
^3.3package:web ^0.5.0.Add MockClient.pngResponse, which makes it easier to fake image responses.
MockClient.pngResponse, which makes it easier to fake image responses.BaseResponseWithUrl.Map<String, List<String> to
BaseResponse.* Allow web: '>=0.3.0 <0.5.0'.
web: '>=0.3.0 <0.5.0'.BrowserClient throws ClientException when the 'Content-Length' header is invalid.
BrowserClient throws ClientException when the 'Content-Length' header
is invalid.IOClient trims trailing whitespace on header values.package:web.Add better error messages for SocketExceptions when using IOClient.
SocketExceptions when using IOClient.StreamedRequest.sink a StreamSink. This makes request.sink.close()
return a Future instead of void, but the returned future should not be
awaited. The Future returned from sink.close() may only complete after the
request has been sent.First non-experimental release; no semantic changes from version 0.1.6.
base, final, and interface modifiers to some classes.BrowserClient throws an exception if send is called after close.
BrowserClient throws an exception if send is called after close.no_default_http_client=true is set in the environment then disk usage
is reduced in some circumstances.Allow async callbacks in RetryClient.
MockHttpClient use the callback returned Response.request instead of
the argument value to give more control to the callback. This may be breaking
for callbacks which return incomplete Responses and relied on the default.Throw a more useful error when a client is used after it has been closed.
Validate that the method parameter of BaseRequest is a valid "token".
method parameter of BaseRequest is a valid "token".Add package:http/retry.dart with RetryClient. This is the same implementation as package:http_retry which will be discontinued.
package:http/retry.dart with RetryClient. This is the same
implementation as package:http_retry which will be discontinued.Fix code samples in README to pass a Uri instance.
README to pass a Uri instance.Add const constructor to ByteStream.
const constructor to ByteStream.BrowserClient from blob to arraybuffer.String or Uri to be
passed now require a Uri.body and encoding argument to Client.delete. This
is only breaking for implementations which override that method.Nothing published for this version
Fix error handler callback type for response stream errors to avoid masking root causes.
Add IOStreamedResponse which includes the ability to detach the socket. When sending a request with an IOClient the response will be an IOStreamedResp
IOStreamedResponse which includes the ability to detach the socket.
When sending a request with an IOClient the response will be an
IOStreamedResponse.package:async.The regular Client factory constructor is now usable anywhere that dart:io or dart:html are available, and will give you an IoClient or BrowserClient
Client factory constructor is now usable anywhere that dart:io
or dart:html are available, and will give you an IoClient or
BrowserClient respectively.package:http/http.dart import is now safe to use on the web (or
anywhere that either dart:io or dart:html are available).IoClient directly, you will need to import
the new package:http/io_client.dart import. This is typically only necessary
if you are passing a custom HttpClient instance to the constructor, in which
case you are already giving up support for web.Nothing published for this version
* Documentation fixes.
* Documentation fixes.
Fix a bug setting the 'content-type' header in MultipartRequest.
'content-type' header in MultipartRequest.Add a Client.patch shortcut method and a matching top-level patch method.
Client.patch shortcut method and a matching top-level patch method.* Support http_parser 1.0.0.
http_parser 1.0.0.Eliminate many uses of Chain.track from the stack_trace package.
Require Dart SDK >= 1.9.0
Eliminate many uses of Chain.track from the stack_trace package.
* Support http_parser 2.0.0.
http_parser 2.0.0.* Fix all strong mode warnings.
Fix some lingering strong mode warnings.
Fix one more strong mode warning in http/testing.dart.
http/testing.dart.Declare compatibility with http_parser 3.0.0.
http_parser 3.0.0.Properly specify Content-Transfer-Encoding for multipart chunks.
Content-Transfer-Encoding for multipart chunks.Remove an extra newline in multipart chunks.
Fix the SDK constraint to only include SDK versions that support importing dart:io everywhere.
dart:io everywhere.Don't quote the boundary header for MultipartRequest. This is more compatible with server quirks.
MultipartRequest. This is more
compatible with server quirks.remove boundary characters that package:http_parser cannot parse.
Remove single quote ("'" - ASCII 39) from boundary characters. Causes issues with Google Cloud Storage.
Declare support for async 2.0.0.
async 2.0.0.Stop depending on the stack_trace package.
stack_trace package.Use new Dart 2 constant names. This branch is only for allowing existing code to keep running under Dart 2.
Add a BrowserClient.withCredentials property.
BrowserClient.withCredentials property.Expose the IOClient class which wraps a dart:io HttpClient.
IOClient class which wraps a dart:io HttpClient.Widen the version constraint for stack_trace.
stack_trace.Properly namespace an internal library name.
The package no longer depends on dart:io. The BrowserClient class in package:http/browser_client.dart can now be used to make requests on the browser.
The package no longer depends on dart:io. The BrowserClient class in
package:http/browser_client.dart can now be used to make requests on the
browser.
Change MultipartFile.contentType from dart:io's ContentType type to
http_parser's MediaType type.
Exceptions are now of type ClientException rather than dart:io's
HttpException.
Fix a bug in handling errors in decoding XMLHttpRequest responses for BrowserClient.
BrowserClient.Make BaseRequest.contentLength and BaseResponse.contentLength use null to indicate an unknown content length rather than -1.
Make BaseRequest.contentLength and BaseResponse.contentLength use null
to indicate an unknown content length rather than -1.
The contentLength parameter to new BaseResponse is now named rather than
positional.
Make request headers case-insensitive.
Make MultipartRequest more closely adhere to browsers' encoding conventions.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →