gpt4 book ai didi

json - 如何配置 F# JSON 类型提供程序以对 POST 请求使用 UTF-8?

转载 作者:行者123 更新时间:2023-12-04 15:19:41 24 4
gpt4 key购买 nike

我需要编码为使用 F# JSON 类型提供程序 JsonValue.Request 方法发送的 UTF-8 HTTP 有效负载。

Request 允许指定 HTTP header ,但 JSON 类型提供程序负责将 Content-Type header 设置为“application/json”,而不指定“charset”限定符。如果我尝试自己设置内容类型,我最终会得到重复的 header 值(确实导致错误)。并且只有“application/json”以下代码选择默认编码:

let getEncoding contentType =
let charset = charsetRegex.Match(contentType)
if charset.Success then
Encoding.GetEncoding charset.Groups.[1].Value
else
HttpEncodings.PostDefaultEncoding

PostDefaultEncoding 是 ISO-8859-1,不适合我们的场景。

知道如何为 JsonValue.Request 有效负载覆盖 PostDefaultEncoding 吗?

最佳答案

我认为JsonValue.Request方法只是一个方便的助手,涵盖了最常见的场景,但并不一定为您提供发出任意请求所需的所有功能。 (也就是说,UTF-8 听起来是更合理的默认值。)

最通用的 F# 数据函数是 Http.Request ,它允许您以任何方式上传数据:

let buffer = System.Text.Encoding.UTF8.GetBytes "👍👍👍"
Http.RequestString
( "https://httpbin.org/post",
httpMethod="POST",
body=HttpRequestBody.BinaryUpload buffer )

所以,如果你替换 "👍👍👍"yourJsonValue.ToString() ,这应该发送带有 UTF-8 编码正文的请求。

关于json - 如何配置 F# JSON 类型提供程序以对 POST 请求使用 UTF-8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39208713/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com