This is a significant release with many breaking changes. Please read carefully. An upgrade guide has also been added to the documentation.
Big stuff, all BREAKING:
- Removed dependency on
Newtonsoft.Json
in favor ofSystem.Text.Json
(#517)- Rather stick with Newtonsoft? Try the new Flurl.Http.Newtonsoft companion package
- Removed all non-generic,
dynamic
-returning JSON methods (#699)- Flurl.Http.Newtonsoft also brings these back.
- Huge overhaul of Flurl's configuration system to make it more fluent and more DI-friendly (#770)
- "Factories" are removed, replaced by fluent configuration of HttpClient and HttpMessageHandlers
FlurlHttp
static object completely overhauled, now mostly just responsible for client caching associated with "clientless" usage patternConfigure
andConfigureRequest
methods renamed toWithSettings
- Overhaul of Event Handlers (#784)
- No longer available on
Settings
- Fluent extension methods still work
- No longer available on
Smaller stuff, all BREAKING:
Settings.ConnectionLeaseTimeout
removed (#703)WithClient
extension methods removed (#590)CancellationToken
moved to last arg everywhere that it isn't (#702)AllowHttpStatus
now takesint
instead ofHttpStatusCode
args (#785)GetStreamAsync
defaults to unbuffered behavior (#630)IFlurlClient.Settings
andIFlurlRequest.Settings
container objects are read-onlyIFlurlClient.HttpMessageHandler
removedFlurlCall.RedirectedFrom
moved toIFlurlRequest
(accessible viaFlurlCall.Request.RedirectedFrom
)FlurlResponse
ctor takes aFlurlCall
instead of anHttpResponseMessage
FlurlRequest.Client
is no longer instantiated on demand by just referencing the property. If it hasn't been set explicitly, or (more common) by callingFlurlClient.Request
, it will remain null until the request is sentIHttpSettingsContainer
renamed toISettingsContainer
, and itsHeaders
property moved to (new)IHeadersContainer
(#773)FakeHttpMessageHandler
,TestHttpClientFactory
, andTestFlurlHttpSettings
types all removed
Non-breaking enhancements and bug fixes:
- First-class support for persisting and restoring
CookieJar
(#758) - HTTP 2.0 support via
Settings.HttpVersion
(#639) AllowRealHttp
now reverts to original HttpClient, eliminating certain quirks (#683)- Flurl no longer disposes request message automatically, per best practices (#650)
- Removed circular redirect detection (#714)
- Bugfix:
ShouldHaveCalled
false negative with URL ending with?
(#721) - Bugfix: extra space added to Content-Type headers (#740)