FsHttp 9.0.0

There is a newer version of this package available.
See the version list below for details.
dotnet add package FsHttp --version 9.0.0
                    
NuGet\Install-Package FsHttp -Version 9.0.0
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="FsHttp" Version="9.0.0" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="FsHttp" Version="9.0.0" />
                    
Directory.Packages.props
<PackageReference Include="FsHttp" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add FsHttp --version 9.0.0
                    
#r "nuget: FsHttp, 9.0.0"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package FsHttp@9.0.0
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=FsHttp&version=9.0.0
                    
Install as a Cake Addin
#tool nuget:?package=FsHttp&version=9.0.0
                    
Install as a Cake Tool

FsHttp

FsHttp is a .Net HTTP client library For C# and F#. It aims for describing and executing HTTP requests in convenient ways that can be used in production and interactive environments.

FsHttp is authored by @ronaldschlenker. Feel free to leave a message.

NuGet Badge build status

Documentation

Please see FsHttp Documentation site for a detailed documentation.

A Simple Example

An example in F#:

#r "nuget: FsHttp"

open FsHttp

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

An example in C#:

#r "nuget: FsHttp"

using FsHttp.CSharp;

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

Migrating to new versions

For different upgrade paths, please read the Migrations section in the docu.

Building

You need to have the latest .Net 5 SDK installed.

Building binaries, publish, and test

There is a F# script that can be used to perform several build tasks from command line. It can be executed in this way:

PS> dotnet fsi .\build.fsx [task]

Common tasks are:

  • build
  • test
  • publish

Building the documentation

The documentation in ./docs is auto-generated from the files in ./src/Docu. In order to build them, run:

PS> .\docu.ps1

Credits

Parts of the code is taken from the HTTP utilities of FSharp.Data.

Product Compatible and additional computed target framework versions.
.NET net5.0 is compatible.  net5.0-windows was computed.  net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (19)

Showing the top 5 NuGet packages that depend on FsHttp:

Package Downloads
Pxl.Ui

Package Description

FsHttp.FSharpData

FSharp.Data (JSON) integration package for FsHttp

Functional.SplinterBots.API

Package Description

FsHttp.NewtonsoftJson

JSON.Net (Newtonsoft.Json) integration package for FsHttp

Alma.WebApplication

Common utils, types, handlers, ... for a web application.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
15.0.3 58,357 10/3/2025
15.0.2 8,313 9/13/2025
15.0.1 96,675 12/3/2024
14.5.2 1,174 12/3/2024
14.5.1 481,265 8/9/2024
14.5.0 205,786 3/5/2024
14.4.2 588 3/5/2024
14.4.1 73,488 2/5/2024
14.4.0 79,535 1/7/2024
14.2.0 1,163 1/5/2024
14.1.0 1,097 1/3/2024
14.0.0 1,159 1/2/2024
13.3.0 13,838 12/28/2023
13.2.0 938 12/28/2023
12.2.0-preview01 806 12/24/2023
12.1.0 4,123 11/27/2023
12.0.0 52,046 10/31/2023
11.0.0 58,009 8/5/2023
11.0.0-preview01 1,493 3/25/2023
9.0.0 14,166 4/5/2022
Loading failed

v7.0.0
     - #92: `expect` and `assert` pass through the original response instead of unit.

     v8.0.0
     - #93 (thanks @drhumlen): Changed content type 'text/json' to 'application/json'.
     - Http modules are always AutoOpen in both Dsl and DslCE
     - No extra modules for builder methods

     v8.0.1
     - #89: No more blocking requests using net5 with FSI

     v9.0.0
     - Redefined builders (see README.md)
     - Many breaking changes (see "Migrations" sections in the docu)