FsHttp.NewtonsoftJson 14.5.1
dotnet add package FsHttp.NewtonsoftJson --version 14.5.1
NuGet\Install-Package FsHttp.NewtonsoftJson -Version 14.5.1
<PackageReference Include="FsHttp.NewtonsoftJson" Version="14.5.1" />
paket add FsHttp.NewtonsoftJson --version 14.5.1
#r "nuget: FsHttp.NewtonsoftJson, 14.5.1"
// Install FsHttp.NewtonsoftJson as a Cake Addin #addin nuget:?package=FsHttp.NewtonsoftJson&version=14.5.1 // Install FsHttp.NewtonsoftJson as a Cake Tool #tool nuget:?package=FsHttp.NewtonsoftJson&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 及其用于 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 已经计算。 |
-
net6.0
- FSharp.Core (>= 5.0.2)
- FsHttp (>= 14.5.1)
- Newtonsoft.Json (>= 13.0.3)
NuGet 包
此包未由任何 NuGet 包使用。
GitHub 仓库
此包未由任何流行的 GitHub 仓库使用。
版本 | 下载 | 最后更新 |
---|---|---|
14.5.1 | 70 | 8/9/2024 |
14.5.0 | 187 | 3/5/2024 |
14.4.2 | 80 | 3/5/2024 |
14.4.1 | 880 | 2/5/2024 |
14.4.0 | 165 | 1/7/2024 |
14.2.0 | 118 | 1/5/2024 |
14.1.0 | 116 | 1/3/2024 |
14.0.0 | 108 | 1/2/2024 |
13.3.0 | 128 | 12/28/2023 |
13.2.0 | 111 | 12/28/2023 |
12.2.0-preview01 | 105 | 12/24/2023 |
12.1.0 | 175 | 11/27/2023 |
12.0.0 | 159 | 10/31/2023 |
11.0.0 | 190 | 8/5/2023 |
11.0.0-preview01 | 144 | 3/25/2023 |
10.0.0 | 1,550 | 11/25/2022 |
10.0.0-preview3 | 125 | 11/23/2022 |
10.0.0-preview2 | 132 | 11/12/2022 |
10.0.0-preview1 | 137 | 11/12/2022 |
9.1.2 | 1,715 | 6/5/2022 |
9.1.1 | 644 | 4/24/2022 |
9.1.0 | 406 | 4/19/2022 |
9.0.6 | 405 | 4/19/2022 |
9.0.5 | 426 | 4/14/2022 |
14.5.1
- 修复未跟踪的 Bug:使用 config_useBaseUrl 作为 http 模板时,打印未完成请求不会崩溃
14.5.0
- 向 Config 添加 'useBaseUrl' 和 'transformUrl' 以提高可组合性
- 修复一些扩展方法
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` 通过原始响应而不是 unit 来传递。
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)