dio 5.5.0+1
dio: ^5.5.0+1 copied to clipboard
A powerful HTTP networking package, supports Interceptors, Aborting and canceling a request, Custom adapters, Transformers, etc.
CHANGELOG #
Before you upgrade: Breaking changes might happen in major and minor versions of packages.
See the Migration Guide for the complete breaking changes list.
Unreleased #
None.
5.5.0+1 #
- Fix WASM compile errors after moving the web implementation to
dio_web_adapter.
5.5.0 #
- Raise the min Dart SDK version to 2.18.0.
- Add constructor for
DioExceptionType.badCertificate. - Create type alias
DioMediaTypeforhttp_parser'sMediaType. - Fix the type conversion regression when using
MultipartFile.fromBytes. - Split the Web implementation to
package:dio_web_adapter. - Add FusedTransformer for improved performance when decoding JSON.
- Set FusedTransformer as the default transformer.
- Improves
InterceptorState.toString(). - If the
CancelTokengot canceled before making requests, throws the exception directly rather than cut actual HTTP requests afterward. - Catch
MediaTypeparse exception inTransformer.isJsonMimeType. - Improves warning logs on the Web platform.
- Improves memory allocating when using
CancelToken.
5.4.3+1 #
- Fix type promotions for the UTF-8 encoder on previous Dart SDKs.
5.4.3 #
- Remove sockets detach in
IOHttpClientAdapter. - Allows to define
FormData.boundaryNameinstead of the default--dio-boundary-.
5.4.2+1 #
- Revert "Catch sync/async exceptions in interceptors' handlers".
5.4.2 #
- Fix
receiveTimeoutthrows exception after the request has been cancelled. - Catch sync/async exceptions in interceptors' handlers.
- Throws precise
StateErrorfor handler's duplicated calls.
5.4.1 #
- Provide fix suggestions for
dart fix. - Fix
receiveTimeoutfor streamed responses. - Fix cancellation for streamed responses and downloads when using
IOHttpClientAdapter. - Fix receive progress for streamed responses and downloads when using
IOHttpClientAdapter. - Support relative
baseUrlon the Web platform. - Avoid fake uncaught exceptions during debugging with IDEs.
5.4.0 #
- Improve
SyncTransformer's stream transform. - Allow case-sensitive header keys with the
preserveHeaderCaseflag through options. - Fix
receiveTimeoutfor theIOHttpClientAdapter. - Fix
receiveTimeoutfor thedownloadmethod ofDioForNative. - Improve the stream byte conversion.
5.3.4 #
- Raise warning for
Maps other thanMap<String, dynamic>when encoding request data. - Improve exception messages.
- Allow
ResponseDecoderandRequestEncoderto be async. - Ignores
Duration.zerotimeouts.
5.3.3 #
- Fix failing requests throw
DioExceptions with.unknowninstead of.connectionErroronSocketException. - Removes the accidentally added
optionsargument forOptions.compose. - Fix wrong formatting of multi-value header in
BrowserHttpClientAdapter. - Add warning in debug mode when trying to send data with a
GETrequest in web. - Reduce cases in which browsers would trigger a CORS preflight request.
- Add warnings in debug mode when using
sendTimeoutandonSendProgresswith an empty request body. - Fix
receiveTimeoutnot working correctly on web. - Fix
ImplyContentTypeInterceptorcan be removed byInterceptors.clear()by default.
5.3.2 #
- Revert removed
downloadforDioMixin. - Fix for
Dio.downloadnot cleaning the file on data handling error.
5.3.1 #
- Improve package descriptions and code formats.
- Improve comments.
- Fix error when cloning
MultipartFilefromFormDatawith regression test. - Deprecate
MultipartFileconstructor in favorMultipartFile.fromStream. - Add
FormData.clone.
5.3.0 #
- Remove
httpfromdev_dependencies. - Add support for cloning
MultipartFilefromFormData. - Only produce null response body when
ResponseType.json.
5.2.1+1 #
- Fix changelog on pub.flutter-io.cn.
5.2.1 #
- Revert changes to handling of
List<int>body data.
5.2.0+1 #
- Fix
DioErrorTypedeprecation hint.
5.2.0 #
- Make
LogInterceptorprints in DEBUG mode (when the assertion is enabled) by default. - Deprecate
DioErrorin favor ofDioException. - Fix
IOHttpClientAdapter.onHttpClientCreateRepeated calls IOHttpClientAdapter.onHttpClientCreatehas been deprecated and is scheduled for removal in Dio 6.0.0 - Please use the replacementIOHttpClientAdapter.createHttpClientinstead.- Using
CancelTokenno longer closes and re-createsHttpClientfor each request whenIOHttpClientAdapteris used. - Fix timeout handling for browser
receiveTimeout. - Improve performance when sending binary data (
List<int>/Uint8List).
5.1.2 #
- Allow
FormDatato send a null entry value as an empty string.
5.1.1 #
- Revert changes to
CancelToken.cancel()behavior, as a result theDioErrorprovided by theCancelToken.cancelErrordoes not contain useful information when the token was not used with a request. - Fix wrong
ListFormatbeing used for comparison during encoding ofFormDataandapplication/x-www-form-urlencoded, resulting in potential wrong output encoding forListFormat.multiandListFormat.multiCompatiblesince Dio 4.0.x. - Respect
Options.listFormatwhen encodingx-www-url-encodedcontent.
5.1.0 #
- Fix double-completion when using
connectionTimeouton web platform. - Allow defining adapter methods through their constructors.
- Fix
FormDataencoding regression for maps with dynamic keys, introduced in 5.0.3. - Mark several static
DioMixinfunctions as@internal. - Make
DioError.stackTracenon-nullable. - Ensure
DioError.stackTracealways points to the correct call site.
5.0.3 #
- Imply
List<Map>as JSON content inImplyContentTypeInterceptor. - Fix
FormDataencoding for collections and objects.
5.0.2 #
- Improve code formats according to linter rules.
- Remove the force conversion for the response body.
- Fix
DioErrorType.cancelinInterceptors. - Fix wrong encoding of collection query parameters.
- Fix "unsupported operation" error on web platform.
5.0.1 #
- Add
ImplyContentTypeInterceptoras a default interceptor. - Add
Headers.multipartFormDataContentTypefor headers usage. - Fix variable shadowing of
withCredentialsinbrowser_adapter.dart.
5.0.0 #
- Raise the min Dart SDK version to 2.15.0 to support
BackgroundTransformer. - Change
Dio.transformerfromDefaultTransformertoBackgroundTransformer. - Remove plain ASCII check in
FormData. - Allow asynchronous method with
savePath. - Allow
datain all request methods. - A platform independent
HttpClientAdaptercan now be instantiated by doingdio.httpClientAdapter = HttpClientAdapter();. - Add
ValidateCertificateto handle certificate pinning better. - Support
Content-Dispositionheader case sensitivity.
Breaking Changes #
- The default charset
utf-8inHeaderscontent type constants has been removed. BaseOptions.setRequestContentTypeWhenNoPayloadhas been removed.- Improve
DioErrors. There are now more cases in which the inner original stacktrace is supplied. HttpClientAdaptermust now be implemented instead of extended.- Any classes specific to
dart:ioplatforms can now be imported viaimport 'package:dio/io.dart';. Classes specific to web can be imported viaimport 'package:dio/browser.dart';. connectTimeout,sendTimeout, andreceiveTimeoutare nowDurations.
4.0.6 #
- fix #1452
4.0.5 #
- require Dart
2.12.1which fixes exception handling for secure socket connections (#45214) - Only delete file if it exists when downloading.
- Fix
BrowserHttpClientAdaptercanceled hangs - Correct JSON MIME Type detection
- [Web] support send/receive progress in web platform
- refactor timeout logic
- use 'arraybuffer' instead of 'blob' for xhr requests in web platform
4.0.4 #
- Fix fetching null data in a response
4.0.3 #
- fix #1311
4.0.2 #
- Add QueuedInterceptor
- merge #1316 #1317
4.0.1 #
- merge pr #1177 #1196 #1205 #1224 #1225 #1227 #1256 #1263 #1291
- fix #1257
4.0.0 #
stable version
4.0.0-prev3 #
- fix #1091 , #1089 , #1087
4.0.0-prev2 #
- fix #1082 and # 1076
4.0.0-prev1 #
Interceptors: Add handler for Interceptor APIs which can specify
the subsequent interceptors processing logic more finely (whether to skip them or not).
4.0.0-beta7 #
- fix #1074
4.0.0-beta6 #
- fix #1070
4.0.0-beta5 #
- support ListParam
4.0.0-beta4 #
- fix #1060
4.0.0-beta3 #
- rename CollectionFormat to ListFormat
- change default value of Options.listFormat from
multiCompatibletomulti - add upload_stream_test.dart
4.0.0-beta2 #
- support null-safety
- add
CollectionFormatconfiguration in Options - add
fetchAPI for Dio - rename DioErrorType enums from uppercase to camel style
- rename 'Options.merge' to 'Options.copyWith'
3.0.10 2020.8.7 #
- fix #877 'dio.interceptors.errorLock.lock()'
- fix #851
- fix #641
3.0.9 2020.2.24 #
- Add test cases
3.0.8 2019.12.29 #
- Code style improvement
3.0.7 2019.11.25 #
- Merge #574 : fix upload image header error, support both oss and other server
3.0.6 2019.11.22 #
- revert #562, and fixed #566
3.0.5 2019.11.19 #
- merge #557 #531
3.0.4 2019.10.29 #
- fix #502 #515 #523
3.0.3 2019.10.1 #
- fix encode bug
3.0.2 2019.9.26 #
- fix #474 #480
3.0.2-dev.1 2019.9.20 #
- fix #470 #471
3.0.1 2019.9.20 #
- Fix #467
- Export
DioForNativeandDioForBrowserclasses.
3.0.0 #
New features #
- Support Flutter Web.
- Extract CookieManager into a separate package(No need for Flutter Web).
- Provides HTTP/2.0 HttpClientAdapter.
Change List #
-
Options.cookies -
Options.connectionTimeout;We should config connection timed out inBaseOptions. For keep-alive reasons, not every request requires a separate connection。 -
Options.followRedirects、Options.maxRedirects、Response.redirectsdon't make sense in Flutter Web,because redirection can be automatically handled by browsers. -
FormData.from,useFormData.fromMapinstead. -
Delete
Formdata.asBytes()、Formdata.asBytesAsync(), useFormdata.readAsBytes()instead. -
Delete
class,UploadFileInfoMultipartFileinstead. -
The return type of Interceptor's callback changes from
FutureOr<dynamic>toFuture. The reason is here. -
The type of
Response.headerschanges fromHttpHeaderstoHeaders, becauseHttpHeadersis in "dart:io" library which is not supported in Flutter Web.
2.1.16 #
Add deleteOnError parameter to downloadUri
2.1.14 #
- fix #402 #385 #422
2.1.13 #
- fix #369
2.1.12 #
- fix #367 #365
2.1.10 #
- fix #360
2.1.9 #
- support flutter version>=1.8 (fix #357)
2.1.8 #
- fix #354 #312
- Allow "delete" method with request body(#223)
2.1.7 #
- fix #321 #318
2.1.6 #
- fix #316
2.1.5 #
- fix #309
2.1.4 #
- Add
options.responseDecoder - Make DioError catchable by implementing Exception instead of Error
2.1.3 #
Add statusMessage attribute for Response and ResponseBody
2.1.2 #
First Stable version for 2.x
2.0 #
Refactor the Interceptors
- Support add Multiple Interceptors.
- Add Log Interceptor
- Add CookieManager Interceptor
API
- Support Uri
- Support
queryParametersfor all request API - Modify the
getAPI
Options
- Separate Options to three class: Options、BaseOptions、RequestOptions
- Add
queryParametersandcookiesfor BaseOptions
Adapter
- Abstract HttpClientAdapter layer.
- Provide a DefaultHttpClientAdapter which make http requests by
dart:io:HttpClient
0.1.8 #
- change file name "TransFormer" to "Transformer"
- change "dio.transFormer" to "dio.transformer"
- change deprecated "UTF8" to "utf8"
0.1.5 #
- add
clearmethod for dio instance
0.1.4 #
- fix
downloadbugs
0.1.3 #
- support upload files with Array
- support create
HttpClientby user self inonHttpClientCreate - support generic
- bug fix
0.0.1 #
- Initial version, created by Stagehand