A simple, functional HTTP client library for F#
Default non-specified charsets to UTF8 rather than Latin 1.
Allow adding Authorization header without HttpClient validating it.
Bump compilation target to net471 due to https://github.com/dotnet/corefx/issues/23306 and so many other errors stemming from this Suave.Testing is now a file in each unit test project
SSE improvements and tests
Support SSE
It's a minor breaking change, which won't affect normal usage, but does change the API surface area.
HttpFs.Logging
has been replaced for the Logary Facade
This release brings with it Alt<Response>
and <Alt<Choice<Response, exn>>
functionality. This means that you cancel a web request, just by not committing to the Ack. However, you'll always send the request whilst constructing the Alt. Thanks for @polytypic and @neoeinstein for assistance with this release!
This release marks v3 stable and moves further bugfix development onto the releases/v3.x
branch. Please PR towards that branch if you have bugfixes. Otherwise PR towards master
.
v4
will include similar Alt<...>
support but with more granular error cases as well as granular cancelling of both request, downloading of response headers and downloading of response body.
Maybe we'll make HTTP2 come true for v4, maybe we'll get HTTP pipelining. We'll be getting back structural currying (wrapping a module in an object instance to avoid having to pass config around) in order to make it easier to consume the library for newbies.
Hopefully we'll also get some proper HTTP response parsers for v4. =) Keep the PRs coming!
With this release you may abandon the Http.fs-prerelease
nuget, as we're now back to the offical nuget name.
/Henrik
This release does two major things:
withXXX
function into the Request
moduleAsync
to Hopac's Job
HttpFs.Composition
that contains the beginning of filters/middleware. v3 doesn't take that all the way, so Composition
should not be considered a stable API at this point.This may or may not be what you're after, so that's why you can also use the 2.x releases if you wish.
That said, you can fairly easily change a Job
to an Async
with https://hopac.github.io/Hopac/Hopac.html#dec:val%20Hopac.Extensions.Async.Global.ofJob
The aim of v3 and v4 as they come is:
Added Patch Http verb, fixed issue with empty response.CharacterEncoding
Added getResponseStream