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.
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.
// Install FsHttp as a Cake Addin
#addin nuget:?package=FsHttp&version=9.0.0

// Install FsHttp as a Cake Tool
#tool nuget:?package=FsHttp&version=9.0.0

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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (11)

Showing the top 5 NuGet packages that depend on FsHttp:

Package Downloads
Functional.SplinterBots.API

Package Description

FsHttp.FSharpData

FSharp.Data (JSON) integration package for FsHttp

FsHttp.NewtonsoftJson

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

Swate.Api

Dotnet library for easy access to Swate API.

Perla.PackageManager

A Library under the Perla umbrella. This package gives you a small set of APIs to interact with the JSPM Generator and Skypack API. Also, this library powers the package management + importmap features of Perla Dev Server.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
14.5.0 4,024 3/5/2024
14.4.2 250 3/5/2024
14.4.1 70,415 2/5/2024
14.4.0 78,763 1/7/2024
14.2.0 767 1/5/2024
14.1.0 728 1/3/2024
14.0.0 563 1/2/2024
13.3.0 12,965 12/28/2023
13.2.0 567 12/28/2023
12.2.0-preview01 564 12/24/2023
12.1.0 1,932 11/27/2023
12.0.0 51,131 10/31/2023
11.0.0 37,593 8/5/2023
11.0.0-preview01 1,229 3/25/2023
10.0.0 172,463 11/25/2022
10.0.0-preview3 864 11/23/2022
10.0.0-preview2 1,068 11/12/2022
10.0.0-preview1 882 11/12/2022
9.1.2 29,377 6/5/2022
9.1.1 3,507 4/24/2022
9.1.0 1,663 4/19/2022
9.0.6 1,677 4/19/2022
9.0.5 1,725 4/14/2022
9.0.4 1,495 4/8/2022
9.0.3 1,388 4/8/2022
9.0.2 3,319 4/6/2022
9.0.1 1,300 4/5/2022
9.0.0 13,819 4/5/2022
8.0.1 8,076 3/6/2022
8.0.0 1,159 3/2/2022
7.0.0 37,938 12/13/2021
6.0.1 2,305 11/23/2021
6.0.0 990 11/22/2021
0.9.0 1,890 7/14/2019

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)