Changelog History
Page 1
-
v3.0.0 Changes
September 13, 2019๐ Flurl 3.0 contains a major rewrite of the URL building/parsing engine. It brings
Flurl.Url
's feature set more in line withSystem.Uri
, while also addressing some of its quirks.๐ New Features
๐ New
Url
properties (#440)Scheme
(read/write)UserInfo
(read/write)Host
(read/write)Port
(read/write)Authority
(read-only,UserInfo
+Host
+Port
)Root
(read-only,Scheme
+Authority
)PathSegments
(modifiable)IsRelative
(read-only)
-
IsSecureScheme
(read-only, true for https or wss)๐ All URL-building extension methods currently on
string
now available onSystem.Uri
(#489)๐ New fluent builder methods on
Flurl.Url
,System.Uri
, andstring
:RemovePathSegment()
(removes the last segment)RemovePath()
RemoveQuery()
-
Reset()
(restoresUrl
to its original state as constructed, NOT available onstring
)๐ Support for relative URLs (#407)
Parameterless constructor for
Url
(#518)๐ New static utility method:
Url.ParsePathSegments(string)
(assumes entire string is the path portion of a URL)๐ฅ Breaking Changes from 2.x
- ๐ New collection type for
Url.QueryParams
(#555) Url.Path
changed to be more in line with the formal definition. Previously it included everything (scheme, host, etc.) up to the query string. It now starts after the host/port, including the leading/
if present.Url.IsValid()
instance method was removed. It was confusing in the case of relative URLs since arguably any string could be considered a valid relative URL. Check theIsRelative
property instead. (StaticUrl.IsValid(string)
method is still available but, same a before, returns true only for valid absolute URLs.)- โฌ๏ธ Dropping support for older platforms (#544)
๐ Bug fixes:
Url.ToUri()
now works for relative URLs (#407)
-
v3.0.0-pre6 Changes
September 13, 2019๐ Flurl 3.0 contains a major rewrite of the URL building/parsing engine. It brings
Flurl.Url
's feature set more in line withSystem.Uri
, while also addressing some of its quirks.๐ New Features
๐ New
Url
properties (#440)Scheme
(read/write)UserInfo
(read/write)Host
(read/write)Port
(read/write)Authority
(read-only,UserInfo
+Host
+Port
)Root
(read-only,Scheme
+Authority
)PathSegments
(modifiable)IsRelative
(read-only)
-
IsSecureScheme
(read-only, true for https or wss)๐ All URL-building extension methods currently on
string
now available onSystem.Uri
(#489)๐ New fluent builder methods on
Flurl.Url
,System.Uri
, andstring
:RemovePathSegment()
(removes the last segment)RemovePath()
RemoveQuery()
-
Reset()
(restoresUrl
to its original state as constructed, NOT available onstring
)๐ Support for relative URLs (#407)
Parameterless constructor for
Url
(#518)๐ New static utility method:
Url.ParsePathSegments(string)
(assumes entire string is the path portion of a URL)๐ฅ Breaking Changes from 2.x
- ๐ New collection type for
Url.QueryParams
(#555) Url.Path
changed to be more in line with the formal definition. Previously it included everything (scheme, host, etc.) up to the query string. It now starts after the host/port, including the leading/
if present.Url.IsValid()
instance method was removed. It was confusing in the case of relative URLs since arguably any string could be considered a valid relative URL. Check theIsRelative
property instead. (StaticUrl.IsValid(string)
method is still available but, same a before, returns true only for valid absolute URLs.)- โฌ๏ธ Dropping support for older platforms (#544)
๐ Bug fixes:
Url.ToUri()
now works for relative URLs (#407)
-
v3.0.0-pre5 Changes
September 13, 2019๐ Flurl 3.0 contains a major rewrite of the URL building/parsing engine. It brings
Flurl.Url
's feature set more in line withSystem.Uri
, while also addressing some of its quirks.๐ New Features
๐ New
Url
properties (#440)Scheme
(read/write)UserInfo
(read/write)Host
(read/write)Port
(read/write)Authority
(read-only,UserInfo
+Host
+Port
)Root
(read-only,Scheme
+Authority
)PathSegments
(modifiable)IsRelative
(read-only)
-
IsSecureScheme
(read-only, true for https or wss)๐ All URL-building extension methods currently on
string
now available onSystem.Uri
(#489)๐ New fluent builder methods on
Flurl.Url
,System.Uri
, andstring
:RemovePathSegment()
(removes the last segment)RemovePath()
RemoveQuery()
-
Reset()
(restoresUrl
to its original state as constructed, NOT available onstring
)๐ Support for relative URLs (#407)
Parameterless constructor for
Url
(#518)๐ New static utility method:
Url.ParsePathSegments(string)
(assumes entire string is the path portion of a URL)๐ฅ Breaking Changes from 2.x
- ๐ New collection type for
Url.QueryParams
(#555) Url.Path
changed to be more in line with the formal definition. Previously it included everything (scheme, host, etc.) up to the query string. It now starts after the host/port, including the leading/
if present.Url.IsValid()
instance method was removed. It was confusing in the case of relative URLs since arguably any string could be considered a valid relative URL. Check theIsRelative
property instead. (StaticUrl.IsValid(string)
method is still available but, same a before, returns true only for valid absolute URLs.)- โฌ๏ธ Dropping support for older platforms (#544)
๐ Bug fixes:
Url.ToUri()
now works for relative URLs (#407)
-
v3.0.0-pre4 Changes
September 13, 2019๐ Flurl 3.0 contains a major rewrite of the URL building/parsing engine. It features better support for relative URLs, and brings its parsing capabilities more in line with
System.Uri
, while also addressing some of its quirks.๐ This release also adds the same set of URL-building extension methods currently on
string
toSystem.Uri
(#489).๐ New
Url
properties:Scheme
(read/write)UserInfo
(read/write)Host
(read/write)Port
(read/write)Authority
(read-only,UserInfo
+Host
+Port
)Root
(read-only,Scheme
+Authority
)PathSegments
(modifiable)IsRelative
(read-only)IsSecureScheme
(read-only, true for https or wss)
๐ New fluent builder methods on
Flurl.Url
,System.Uri
, andstring
:RemovePathSegment()
(removes the last segment)- ๐
RemovePath()
- ๐
RemoveQuery()
- โช
Reset()
(restoresUrl
to its original state as constructed, NOT available onstring
)
Other:
- ๐ New static utility mthod:
Url.ParsePathSegments(string)
(assumes entire string is the path portion of a URL) - ๐
Url.SetQueryParams(object)
gives special treatment to collections ofTuple<T1, T2>
andValueTuple<T1, T2>
, parsing their values as name-value pairs.
๐ฅ BREAKING changes on
Url
:Path
changed to be more in line with the formal definition. Previously it included everything (scheme, host, etc.) up to the query string. It now starts after the host/port, including the leading/
if present.IsValid()
instance method was removed. It was confusing in the case of relative URLs since arguably any string could be considered a valid relative URL. Check theIsRelative
property instead. (StaticUrl.IsValid(string)
method is still available but, same a before, returns true only for valid absolute URLs.)
๐ Bug fixes:
Url.ToUri()
now works for relative URLs (#407)
-
v3.0.0-pre3b Changes
November 09, 2019๐ [Features to be pre-released incrementally. Will update here.]
๐ New Features
FlurlResponse
introduced, primarily to enable inspecting response and deserializing body in separate steps (#354)- โ Tests can be set up to return different fake responses depending on the URL or any other request conditions (#481)
- โ
HttpTest.ForCallsTo(...).AllowRealHttp()
for allowing real calls to be made in a test for specific URLs or any other request conditions (#225) - All extension methods on
Flurl.Url
andstring
are now also available onSystem.Uri
(#489)
๐ฅ Breaking Changes from 2.x
- Fluent methods that previously returned
HttpResponseMessage
(suchGetAsync
,PostAsync
, etc) now returnFlurlResponse
. If you're usingGetJsonAsync
or chainingReceiveXXX
methods, this shouldn't break anything (#354) - ๐
HttpCall
is nowFlurlCall
, and several properties ofFlurlCall
andFlurlHttpException
were moved or renamed (#488) - When asserting a specific URL was called, it must be a full string match rather than "contains" or "starts with". Add a
*
wildcard to the beginning or end if you need partial match behavior (#323) - โ When faking responses in tests, the last response in the queue becomes "sticky" rather than falling back to empty 200 responses (#482)
- ๐
HttpTest.ResponseQueue
public property has been removed. Underlying queue implementation changed significantly to support new features, and hopefully accessing it directly isn't needed. UseRespondWith
methods to build the queues.
๐ Bug Fixes
- โ In tests, dequeuing fake responses is fully thread-safe (#366)
-
v3.0.0-pre3 Changes
September 13, 2019๐ Flurl 3.0 contains a major rewrite of the URL building/parsing engine. It features better support for relative URLs, and brings its parsing capabilities more in line with
System.Uri
, while also addressing some of its quirks.๐ This release also adds the same set of URL-building extension methods currently on
string
toSystem.Uri
(#489).๐ New
Url
properties:Scheme
(read/write)UserInfo
(read/write)Host
(read/write)Port
(read/write)Authority
(read-only,UserInfo
+Host
+Port
)Root
(read-only,Scheme
+Authority
)PathSegments
(modifiable)IsRelative
(read-only)
๐ New fluent builder methods on
Flurl.Url
,System.Uri
, andstring
:RemovePathSegment()
(removes the last segment)- ๐
RemovePath()
- ๐
RemoveQuery()
- โช
Reset()
(restoresUrl
to its original state as constructed, NOT available onstring
)
๐ New static methods on
Url
:- ๐
ParsePathSegments(string)
(assumes entire string is the path portion of a URL)
๐ฅ BREAKING changes on
Url
:Path
changed to be more in line with the formal definition. Previously it included everything (scheme, host, etc.) up to the query string. It now starts after the host/port, including the leading/
if present.IsValid()
instance method was removed. It was confusing in the case of relative URLs since arguably any string could be considered a valid relative URL. Check theIsRelative
property instead. (StaticUrl.IsValid(string)
method is still available but, same a before, returns true only for valid absolute URLs.)
๐ Bug fixes:
Url.ToUri()
now works for relative URLs (#407)
-
v3.0.0-pre2 Changes
December 29, 20192019-12-15
-
v3.0.0-pre1 Changes
November 09, 20192019-09-01
-
v2.8.2 Changes
April 28, 2019- ๐ Bug when decoding encoded
+
(#437)
- ๐ Bug when decoding encoded
-
v2.8.1 Changes
February 15, 2019