Skip to content

Flurl.Http 4.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 14 Dec 04:58
· 19 commits to dev since this release

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 of System.Text.Json (#517)
  • Removed all non-generic, dynamic-returning JSON methods (#699)
  • 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 pattern
    • Configure and ConfigureRequest methods renamed to WithSettings
  • Overhaul of Event Handlers (#784)
    • No longer available on Settings
    • Fluent extension methods still work

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 takes int instead of HttpStatusCode args (#785)
  • GetStreamAsync defaults to unbuffered behavior (#630)
  • IFlurlClient.Settings and IFlurlRequest.Settings container objects are read-only
  • IFlurlClient.HttpMessageHandler removed
  • FlurlCall.RedirectedFrom moved to IFlurlRequest (accessible via FlurlCall.Request.RedirectedFrom)
  • FlurlResponse ctor takes a FlurlCall instead of an HttpResponseMessage
  • FlurlRequest.Client is no longer instantiated on demand by just referencing the property. If it hasn't been set explicitly, or (more common) by calling FlurlClient.Request, it will remain null until the request is sent
  • IHttpSettingsContainer renamed to ISettingsContainer, and its Headers property moved to (new) IHeadersContainer (#773)
  • FakeHttpMessageHandler, TestHttpClientFactory, and TestFlurlHttpSettings 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)