Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fsprojects/FsHttp

Open more actions menu

Repository files navigation

Support my Work

Buy a PXL Clock and help me create more videos like this! Use code RONALD for a 25€ discount:

https://www.pxlclock.com/?ref=RONALD

PXL Clock is a fun device, made with ❤️ - and it's programmable in an easy and quick way.

468354531-9b92c9d7-b20b-4316-8104-ac980fa449d5

Find out more:

Join the PXL Clock Community on Discord

Join Our Discord


FsHttp

Build & Tests NuGet NuGet Downloads

logo

FsHttp is a "hackable HTTP client" that offers a legible style for the basics while still affording full access to the underlying HTTP representations for covering unusual cases. It's the best of both worlds: Convenience and Flexibility.

  • Use it as a replacement for .http files, VSCode's REST client, Postman, and other tools as an interactive and programmable playground for HTTP requests.
  • Usable as a production-ready HTTP client for applications powered by .NET (C#, VB, F#).

👍 Postman? ❤️ FsHttp! https://youtu.be/F508wQu7ET0


Documentation

F# syntax example

#r "nuget: FsHttp"

open FsHttp

http {
    POST "https://reqres.in/api/users"
    CacheControl "no-cache"
    body
    jsonSerialize
        {|
            name = "morpheus"
            job = "leader"
        |}
}
|> Request.send

C# syntax example

#r "nuget: FsHttp"

using FsHttp;

await Http
    .Post("https://reqres.in/api/users")
    .CacheControl("no-cache")
    .Body()
    .JsonSerialize(new
        {
            name = "morpheus",
            job = "leader"
        }
    )
    .SendAsync();

FSI / Non-FSI Scenarios

As this is a recurring issue:

FsHttp emits console logs per default. They can be disabled by putting this line before any request is made:

FsHttp.Fsi.disableDebugLogs ()

Release Notes / Migrating to new versions

Building

.Net SDK:

You need to have a recent .NET SDK installed, which is specified in ./global.json.

Build Tasks

There is a F# build script (./build.fsx) that can be used to perform several build tasks from command line.

For common tasks, there are bash scripts located in the repo root:

  • ./test.sh: Runs all tests (sources in ./src/Tests).
    • You can pass args to this task. E.g. for executing only some tests: ./test.sh --filter Name~'Response Decompression'
  • ./docu.sh: Rebuilds the FsHttp documentation site (sources in ./src/docs).
  • ./docu-watch.sh: Run it if you are working on the documentation sources, and want to see the result in a browser.
  • ./publish.sh: Publishes all packages (FsHttp and it's integration packages for Newtonsoft and FSharp.Data) to NuGet.
    • Always have a look at ./src/Directory.Build.props and keep the file up-to-date.

Credits

  • Parts of the code were taken from the HTTP utilities of FSharp.Data.
  • Credits to all critics, supporters, contributors, promoters, users, and friends.

Contributors

Morty Proxy This is a proxified and sanitized view of the page, visit original site.