FsHttp.FSharpData 14.5.1
dotnet add package FsHttp.FSharpData --version 14.5.1
NuGet\Install-Package FsHttp.FSharpData -Version 14.5.1
<PackageReference Include="FsHttp.FSharpData" Version="14.5.1" />
paket add FsHttp.FSharpData --version 14.5.1
#r "nuget: FsHttp.FSharpData, 14.5.1"
// Install FsHttp.FSharpData as a Cake Addin #addin nuget:?package=FsHttp.FSharpData&version=14.5.1 // Install FsHttp.FSharpData as a Cake Tool #tool nuget:?package=FsHttp.FSharpData&version=14.5.1
FsHttp
<img align="right" width="200" alt='logo' src='https://raw.githubusercontent.com/fsprojects/FsHttp/master/docs/img/logo_big.png' />
FsHttp ("Full Stack 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();
发布说明 / 迁移到新版本
- 参见 https://nuget.net.cn/packages/FsHttp#release-body-tab
- 对于不同的升级路径,请阅读迁移文档部分。
构建
.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及其与JsonNet和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被计算。 |
-
net6.0
- FSharp.Core (>= 5.0.2)
- FSharp.Data (>= 6.3.0)
- FsHttp (>= 14.5.1)
NuGet 包
此包未被任何 NuGet 包使用。
GitHub 仓库
此包未被任何流行的 GitHub 仓库使用。
版本 | 下载 | 最后更新 |
---|---|---|
14.5.1 | 74 | 8/9/2024 |
14.5.0 | 984 | 3/5/2024 |
14.4.2 | 87 | 3/5/2024 |
14.4.1 | 1,076 | 2/5/2024 |
14.4.0 | 291 | 1/7/2024 |
14.2.0 | 106 | 1/5/2024 |
14.1.0 | 119 | 1/3/2024 |
14.0.0 | 115 | 1/2/2024 |
13.3.0 | 118 | 12/28/2023 |
13.2.0 | 129 | 12/28/2023 |
12.2.0-preview01 | 103 | 12/24/2023 |
12.1.0 | 211 | 11/27/2023 |
12.0.0 | 187 | 10/31/2023 |
11.0.0 | 691 | 8/5/2023 |
11.0.0-preview01 | 135 | 3/25/2023 |
10.0.0 | 2,965 | 11/25/2022 |
10.0.0-preview3 | 127 | 11/23/2022 |
10.0.0-preview2 | 146 | 11/12/2022 |
10.0.0-preview1 | 148 | 11/12/2022 |
9.1.2 | 2,092 | 6/5/2022 |
9.1.1 | 674 | 4/24/2022 |
9.1.0 | 399 | 4/19/2022 |
9.0.6 | 418 | 4/19/2022 |
9.0.5 | 414 | 4/14/2022 |
9.0.4 | 432 | 4/8/2022 |
9.0.3 | 434 | 4/8/2022 |
9.0.2 | 410 | 4/6/2022 |
9.0.1 | 411 | 4/5/2022 |
9.0.0 | 421 | 4/5/2022 |
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 类型的一部分。
- 将 `headerTransformers` 添加到 Config 中,以实现更好的组合性
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:使用FSI时不再使用net5进行阻塞请求。
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
- 修复:为jsonSerialize使用GlobalConfig.Json.defaultJsonSerializerOptions作为默认值。
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 提供 - 感谢)