Skip to content

Releases: tmenier/Flurl

Flurl.Http 2.0.1

10 Oct 12:53
Compare
Choose a tag to compare
  • Regression bug - should exclude property entirely when URL-encoding null value (#233)
  • Internalized some setters in HttpCall to match docs

Flurl.Http 2.0

01 Oct 14:38
Compare
Choose a tag to compare

This is big. See #205 for details and motivations.

New Features

  • Aggressive reuse of HttpClient (single instance per host) by default when not managing FlurlClient explicitly (#144)
  • IFlurlClientFactory and FlurlClientFactoryBase allow for easily customizing caching/reuse strategy
  • Better IoC support with alternative IFlurlClientFactory implementation (#226)
  • ConnectionLeaseTimeout setting to deal with potential DNS issue (#222)
  • New FlurlRequest object implicitly created instead of FlurlClient in fluent expressions
  • Headers available at both request and client level (#157)
  • URL builder methods and request configuration methods (WithHeaders, etc) can be called in any order in fluent expressions (#211)
  • FlurlClient.Request method for fluently building a request off a client (#211)
  • FlurlClient.BaseUrl property to (optionally) build all requests off of (#211)
  • WithTimeout specific to a single request
  • Settings available on FlurlRequest, FlurlClient, HttpTest, and FlurlHttp (global) level, each inheriting defaults from a level up (#205 (comment))
  • Ability to fluently tweak request from BeforeCall / BeforeCallAsync (#213)
  • More robust FlurlHttpException.Message (#217)
  • New HttpTest assertions: WithHeader / WithoutHeader (#223)

Breaking Changes from 1.x

  • All fluent extension methods on IFlurlClient moved to IFlurRequest, and all fluent extension methods on Url and string that previously returned IFlurlClient now return IFlurlRequest (Typical usages shouldn't break, but custom extensions should be updated to follow this new pattern)
  • FlurlClient.Url removed (superseded by FlurlRequest.Url)
  • FlurlClient.WithUrl removed (superseded by FlurlClient.Request)
  • FlurlClient.ConfigureClient renamed to FlurlClient.Configure
  • ConfigureClient extensions on IFlurlRequest, Url, and string replaced by ConfigureRequest
  • Url.ConfigureHttpClient removed
  • FlurlHttpSettings.DefaultTimeout replaced by FlurlHttpSettings.Timeout (like other settings, it's the "default" when defined at client or global level)
  • FlurlClient.Clone removed
  • Several FlurlClient constructors removed
  • FlurlHttpSettings.Clone removed
  • FlurlHttpSettings.AutoDispose removed (auto-dispose behavior no longer supported because short-lived clients is not a recommended practice)
  • IHttpClientFactory.CreateClient no longer takes a Url arg (more relevant to IFlurlClientFactory.Get, where caching strategy should be defined)
  • HttpCall.Url removed (superseded by HttpCall.FlurlRequest.Url
  • HttpCall.Settings removed (superseded by HttpCall.FlurlRequest.Settings
  • WithHeaders(object) converts underscores in property names to hyphens in header names by default (#44)

Bug Fixes

  • Cookies work correctly when HttpClientHandler is wrapped in DelegatingHandler (#202)
  • Reading response cookies is skipped when request fails (#208)

Flurl 2.5.0

04 Sep 13:59
Compare
Choose a tag to compare

Dropping PCL target, adding .NET Standard 1.0

Flurl.Http 1.2.0

18 Jul 00:19
Compare
Choose a tag to compare
  • Fixed several platform targeting issues (#176)
  • Fixed referenced assembly versions (#183)
  • Updated solution to VS2017
  • Project structure refactoring

Flurl 2.4.0

18 Jul 00:18
Compare
Choose a tag to compare
  • Fixed several platform targeting issues (#176)
  • Fixed referenced assembly versions (#183)
  • Updated solution to VS2017
  • Project structure refactoring

Flurl.Http 1.1.3

16 Jul 21:47
Compare
Choose a tag to compare
  • Bug fix - don't reuse default response in HttpTest (#175)
  • Bug fix - return IFlurlClient, not FlurlClient, from IFlurlClient.Clone (#182)
  • Added default ctor to FlurlMessageHandler (#186)

Flurl.Http 1.1.2

27 Feb 02:15
Compare
Choose a tag to compare
  • Refactored message handler so it never returns null (#159)
  • Better null handling when attempting to inspect HttpCall.RequestBody and content is not CapturedStringContent (#169)
  • Bumped Flurl dependency to 2.3.0

Flurl 2.3.0

22 Feb 02:35
Compare
Choose a tag to compare
  • Added new overloads of SetQueryParam and SetQueryParams for adding query params with just a name and no value (#164)
  • Added optional NullValueHandling setting to other overloads of SetQueryParam and SetQueryParams. Possible values: NameOnly, Remove (default), Ignore.
  • Url.Path is writeable.

Flurl.Http 1.1.1

24 Nov 01:49
Compare
Choose a tag to compare
  • Added more variations of query param asserts (#102)
  • Added HttpTest.ShouldHaveMadeACall() and HttpTest.ShouldNotHaveMadeACall()
  • Added HttpCallAssertion.Without(Func<HttpCall, bool> match) for testing "not" conditions
  • HttpCall.Url is now a Flurl.Url object instead of a string (non-breaking since Url implicitly converts to string)
  • Better messages when Flurl's call assertions fail

Flurl.Http 1.1

21 Nov 01:01
Compare
Choose a tag to compare
Flurl.Http 1.1 Pre-release
Pre-release
  • HttpTest works with tests running in parallel in .NET 4.5 and .NET Standard (including .NET Core) (#67)
  • IFlurlClient interface for better IoC and mocking support (#146)
  • New FlurlClient constructors for better DI support (#146)
  • Assert query params (#102)
  • BREAKING: AutoDispose property moved from FlurlClient to FlurlHttpSettings.