FsHttp.NewtonsoftJson 14.5.1

dotnet add package FsHttp.NewtonsoftJson --version 14.5.1                
NuGet\Install-Package FsHttp.NewtonsoftJson -Version 14.5.1                
此命令旨在在 Visual Studio 的包管理器控制台中使用,因为它使用 NuGet 模块的 Install-Package 版本。
<PackageReference Include="FsHttp.NewtonsoftJson" Version="14.5.1" />                
对于支持 PackageReference 的项目,将此 XML 节点复制到项目文件中以引用包。
paket add FsHttp.NewtonsoftJson --version 14.5.1                
#r "nuget: FsHttp.NewtonsoftJson, 14.5.1"                
#r 指令可以在 F# Interactive 和 Polyglot Notebooks 中使用。将其复制到交互式工具或脚本的源代码中,以引用该包。
// 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 构建 & 测试 NuGet 徽章

<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 开发和维护。请随时给我们留言。

文档

  • 📖 请访问 FsHttp 文档 网站以获取详细文档。
  • 🧪 此外,请查看 集成测试,这些测试显示了各种库的详细信息。

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 包

此包未由任何 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)