Transport library for sending HTTP requests and opening WebSockets. Platform-independent with builtin support for browser and Dart VM (even supports SockJS). Includes mock utilities for testing.
Transport library for sending HTTP requests and opening WebSockets.
HTTP support includes plain-text, JSON, form-data, and multipart data, as well as custom encoding. Also supports automatic retrying and request & response interception.
WebSocket support includes native WebSockets in the browser and the VM with the option to use SockJS in the browser.
All transport classes are platform-independent and can be configured to work in the browser or on the Dart VM. Additionally, all transport classes can be mocked out and controlled through an API included with this library.
Docs & Help #
As of version 3.0.0, w_transport will be following a versioning and stability commitment that guarantees a compatibility lifespan of two major versions.
If you're installing w_transport for the first time, simply depend on the latest major version and you'll get all patches and minor versions as they are released:
dependencies: w_transport: ^3.0.0
If you're upgrading from version 2.x, you can use the above version range without breaking any existing code. Check out the 3.0.0 upgrade guide.
The main entry point contains all of the transport classes necessary for sending
HTTP requests and establishing WebSocket connections. It is also
platform-independent (depends on neither
dart:io), which means
you can use it to build components, libraries, or APIs that will be reusable in
the browser and on the Dart VM.
import 'package:w_transport/w_transport.dart' as transport;
We strongly recommend importing with the prefix
transportbecause there are some classes whose names conflict with classes from the Dart SDK.
The end consumer will make the decision between browser and VM, most likely in a
Dart SDK #
As of version 3.0.0 of the
w_transport package, the minimum required Dart SDK
version is 1.14.0 (released Jan 28, 2016).
Versioning and Stability #
This library follows semver to the best of our interpretation of it. We want this library to be a stable dependency that’s easy to keep current. A good explanation of the versioning scheme that we intend to follow can be seen here from React.js:
In short: our goal is for every major release to be backwards compatible with the previous major version, giving consumers a lifespan of two major versions to deal with deprecations.
This library was influenced in many ways by
http package, especially with regard
to multipart requests, and served as a useful source for references to pertinent
This project leverages the
for most of its tooling needs, including static analysis, code
formatting, running tests, collecting coverage, and serving examples.
Check out the dart_dev readme for more information.
To run integration tests, you'll need two JS dependencies for a SockJS server. Run
npm installto download them.