FsHttp 14.5.1

dotnet add package FsHttp --version 14.5.1                
NuGet\Install-Package FsHttp -Version 14.5.1                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的版本 Install-Package
<PackageReference Include="FsHttp" Version="14.5.1" />                
对于支持 PackageReference 的项目,请将此 XML 节点复制到项目文件中以引用该包。
paket add FsHttp --version 14.5.1                
#r "nuget: FsHttp, 14.5.1"                
#r 指令可以用在 F# Interactive 和多语言笔记本中。将此内容复制到交互式工具或脚本的源代码中,以引用该包。
// Install FsHttp as a Cake Addin
#addin nuget:?package=FsHttp&version=14.5.1

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

FsHttp 构建 & 测试 NuGet 徽标

<img align="right" width="200" alt='logo' src='https://raw.githubusercontent.com/fsprojects/FsHttp/master/docs/img/logo_big.png' />

FsHttp ("全栈 HTTP") 是一个 "可修改的 HTTP 客户端",它提供易读的基本样式,同时仍允许完全访问底层 HTTP 表示,以覆盖非标准情况。它是两者的最佳结合:便利性和灵活性

  • 将其用作 .http 文件、VSCode 的 REST 客户端Postman 和其他工具的替代品,作为 HTTP 请求的 互动和可编程沙盒
  • 可作为用于由 .NET (C#、VB、F#) 驱动的应用程序的 成熟的生产级 HTTP 客户端

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

@SchlenkR@dawedawe 开发和维护。欢迎给我们留言。

文档

F# 语法示例

#r "nuget: FsHttp"

open FsHttp

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

C# 语法示例

#r "nuget: FsHttp"

using FsHttp;

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

发布说明 / 迁移到新版本

构建

.Net SDK

您需要安装最新版本的.NET SDK,具体在./global.json中指定。

构建任务

有一个F#构建脚本(./build.fsx),可以通过命令行执行多个构建任务。

对于常见任务,仓库根目录中有powershell文件

  • ./test.ps1:运行所有测试(源在./src/Tests)。
    • 您可以向此任务传递参数。例如,只执行某些测试:./test.ps1 --filter Name~'Response Decompression'
  • ./docu.ps1:重建FsHttp文档站(源在./src/docs)。
  • ./docu-watch.ps1:如果您在修改文档源并且希望可在浏览器中查看结果,请运行此脚本。
  • ./publish.ps1:将所有包(FsHttp及其针对Newtonsoft和FSharp.Data的集成包)发布到NuGet。
    • 请始终查看./src/Directory.Build.props并保持此文件更新。

致谢

  • 部分代码来自FSharp.Data的HTTP工具
  • 感谢所有批评家、支持者、贡献者、推广者、用户和朋友们。
产品 兼容的以及额外的目标框架版本。
.NET net6.0兼容。 net6.0-android 已计算。 net6.0-ios 已计算。 net6.0-maccatalyst 已计算。 net6.0-macos 已计算。 net6.0-tvos 已计算。 net6.0-windows 已计算。 net7.0 已计算。 net7.0-android 已计算。 net7.0-ios 已计算。 net7.0-maccatalyst 已计算。 net7.0-macos 已计算。 net7.0-tvos 已计算。 net7.0-windows 已计算。 net8.0 已计算。 net8.0-android 已计算。 net8.0-browser 已计算。 net8.0-ios 已计算。 net8.0-maccatalyst 已计算。 net8.0-macos 已计算。 net8.0-tvos 已计算。 net8.0-windows 已计算。
兼容的目标框架
包含的目标框架(在包中)
了解更多关于目标框架.NET Standard

NuGet包 (13)

显示依赖FsHttp的Top 5个NuGet包

下载
Functional.SplinterBots.API

包描述

FsHttp.FSharpData

FSharp.Data (JSON)集成包,用于FsHttp

FsHttp.NewtonsoftJson

JSON.Net (Newtonsoft.Json)集成包,用于FsHttp

Swate.Api

用于简化访问Swate API的Dotnet库。

Perla.PackageManager

Perla家族下的一个库。此包为您提供一个小的API集合,用于与JSPM生成器和Skypack API交互。此外,该库还推动了Perla Dev Server的包管理和importmap特性。

GitHub仓库

此包没有被任何流行的GitHub仓库使用。

版本 下载 最后更新
14.5.1 270 8/9/2024
14.5.0 105,967 3/5/2024
14.4.2 271 3/5/2024
14.4.1 71,799 2/5/2024
14.4.0 78,979 1/7/2024
14.2.0 789 1/5/2024
14.1.0 744 1/3/2024
14.0.0 583 1/2/2024
13.3.0 12,977 12/28/2023
13.2.0 575 12/28/2023
12.2.0-preview01 575 12/24/2023
12.1.0 2,359 11/27/2023
12.0.0 51,556 10/31/2023
11.0.0 44,439 8/5/2023
11.0.0-preview01 1,233 3/25/2023
10.0.0 185,797 11/25/2022
10.0.0-preview3 867 11/23/2022
10.0.0-preview2 1,077 11/12/2022
10.0.0-preview1 884 11/12/2022
9.1.2 30,340 6/5/2022
9.1.1 3,518 4/24/2022
9.1.0 1,683 4/19/2022
9.0.6 1,687 4/19/2022
9.0.5 1,728 4/14/2022
9.0.4 1,501 4/8/2022
9.0.3 1,391 4/8/2022
9.0.2 3,457 4/6/2022
9.0.1 1,304 4/5/2022
9.0.0 13,825 4/5/2022
8.0.1 8,087 3/6/2022
8.0.0 1,165 3/2/2022
7.0.0 39,609 12/13/2021
6.0.1 2,317 11/23/2021
6.0.0 993 11/22/2021
0.9.0 1,896 7/14/2019

14.5.1
     - 修复未跟踪的bug:使用config_useBaseUrl作为http模板时打印未完成的请求不会崩溃

     14.5.0
     - 添加'useBaseUrl'和'transformUrl'到Config,以便更好地组合
     - 修复了一些扩展方法

     14.4.2
     - 感谢 @bartelink
       所有库项目中固定了 FSharp.Core 到 5.0.2
       移除了 net7.0, net8.0 TFM 特定的构建
       许多其他针对稳定性和细粒度的工作

     14.4.1
       修复了 FSharp.Core 缺少显式依赖问题

     14.4.0
       修复了预先配置的请求

     14.3.0
       添加了 `GetList` JsonElement 扩展
     
     14.2.0
       (破坏性更改)分离了 Config 和 PrintHint(以及这些领域中的许多其他事项)

     14.1.0
       (破坏性更改)将 `Extensions.To...Enumerable` 重命名为 `Extensions.To...Seq`
       添加了 `toJsonList...` 重载

     14.0.0
       (破坏性更改)在 Domain 中重命名了类型
       BodyContent -> SinglepartContent
       RequestContent -> BodyContent
       FsHttpUrl -> FsHttpTarget
       (破坏性更改)FsHttpUrl(现在为 FsHttpTarget)和 Header 重新结构化:方法、地址和 queryParams 现在是 FsHttpTarget 类的一部分。
       在 Config 中添加了 `headerTransformers` 以提高可组合性

     13.3.0
       (破坏性更改)F# 中所有 `Response._TAsync` 函数(基于任务的)都需要一个 CancellationToken。
       (破坏性更改)扩展方法重构
       (破坏性更改)没有了 StartingContext,这意味着
       我们为了在不指定 URL 的情况下预先配置 HTTP 请求而稍微牺牲了一点安全性。
       这是我们愿意做出的权衡。

     12.2.0
       添加了 HttpMethods 以提高可组合性

     12.1.0
       net8.0

     12.0.0
       #137 / #102: 将 FsHttpUrl.additionalQueryParams 的类型从 obj 更改为 string
       移除了(自动打开的)Async.await 和 Task.map/await
       将(自动打开的)Async.map 移到了 FsHttp.Helper.Async.map

     11.1.0
       #130 / #105: 添加用户提供的取消标记的方法

     11.0.0
       #121(破坏性更改):关闭 FSI 中的调试日志(签名/命名空间中的破坏性更改)
       #124:支持重复的查询参数(感谢 @DaveJohnson8080)
       #106(破坏性更改):允许其他“部分”具有文件名元数据(感谢 @dawedawe)
       破坏性更改:ContentTypeForPart 自定义操作应在部分定义之后
       #104(破坏性更改):默认自动解压缩 GZip 响应
       其他破坏性更改
       移除了 `ContentTypeWithEncoding` 并在 `ContentType` 重载中使用了可选的 `charset` 参数。
       将 Dsl、DslCE 和 CSharp 中的 `byteArray` 重命名为 `binary`。
       警告(!!):在 Dsl 和 DslCE 中将 `stringPart` 重命名为 `textPart`,并更改了 `name` 和 `value` 参数的顺序。
       重构了 Domain 中的类型
       `Helper` 是一个模块而不是命名空间,并且一些内容被移动了。
       配置中所有的转换器现在都是转换器列表而不是单一项。
       移除了 `setHttpClient`。请使用 `setHttpClientFactory`。
       `setHttpClientFactory` 接受一个 `Config` 作为输入参数。

     -----------------------------
     旧版本说明如下 --
     -----------------------------
     
     7.0.0
     - #92:`expect` 和 `assert` 通过原始响应进行传递,而不是通过单元测试。

     8.0.0
     - #93(感谢 @drhumlen):将内容类型 'text/json' 改为 'application/json'。
     - Http 模块在 Dsl 和 DslCE 中始终自动打开。
     - 无需额外模块,适用于构建器方法。

     8.0.1
     - #89:不再使用 net5 和 FSI 进行阻止请求。

     9.0.0 / 9.0.1
     - 重新定义构建器(请参阅 README.md)。
     - 许多破坏性更改(请参阅文档中的“迁移”部分)。

     9.0.2
     - 添加了 JSON toArray 函数。
     - 修复了 #99:Response.saveFile如果没有目录应该创建目录。

     9.0.3
     - 再次支持 netstandard2.1。

     9.0.4
     - 引用了最低版本的 FSharp.Core 和其他引用包版本。

     9.0.5
     - 支持 netstandard2.0。
     - 新增 'FsHttp.NewtonsoftJson' 集成软件包。
     - 更多 JSON 函数和默认配置。

     9.0.6
     - #100 - 删除了 FSI 打印消息。

     9.1.0
     - 修复了 'Response.deserialize...' 函数的命名不一致。
     - 更多 C# JSON 函数。

     9.1.1
     - 修复:将 GlobalConfig.Json.defaultJsonSerializerOptions 用于 jsonSerialize 的默认值。

     9.1.2
     - 修复了 #103:FSI 响应打印和初始化现在不再开箱即用。

     10.0.0
     - 支持 .Net 7(感谢 @Samuel-Dufour)。
     - 破坏性更改:修正了拼写错误 "guessMineTypeFromPath" -> "guessMimeTypeFromPath"。
     - 破坏性更改:模块 'Helper', 'HelperInternal' 和 'HelperAutos' 已重构。
     - #115:下载流时移除打印消息。
     - 打印:通过 Request.print 和 Response.print 分别为响应和请求提供单独的打印函数。
     - 打印:在 FSI 中默认请求(IToRequest)打印。
     - 所有项目已移除 net5.0 目标。
     - PrintHint.printDebugMessages:已移至 FsHttp.Helper.Fsi.logDebugMessages 作为全局开关。
     - #113 - Config.timeoutInSeconds 错误。

     10.1.0
     - #117:转义查询参数值字符串(感谢 @maciej-izak)
     (!!) 这可以被视为破坏性更改。
     - #112:允许添加(多个)头部(感谢 @Samuel-Dufour)。