引用 POST 内容导致错误请求

Quote in POST content causing bad requests

我正在通过用 C# 编写的 Windows 服务向 API 发出 POST 请求,内容各不相同。有时,用户会使用 " 来表示英寸。此数据必须传递给 API,但是当它自动完成时,按照我的设置方式,这会导致它结束描述字符串POST 内容过早,导致错误请求。

例如,我可能有一个如下所示的“描述”字段:

“已更换 4”管

有没有办法在不退出字符串的情况下在字符串中间传递“?是不是像下面这样,或者我应该把”字符替换为“inch”这个词?我更愿意发送实际的双引号,因为我不确定他们是否会 always 表示它是指英寸。 即他们可能实际上是在引用某人的话。

        if (description.Contains("\""))
        {
            description.Replace("\"", "inch");
        }

答案来自@TomW...

"@jpb103 不要那样做。连接字符串不遵守 JSON 的正确转义规则。改为使用 JObject 构造主体,这将在对象序列化时遵守字符转义“

                JObject json = new JObject
            {
                { "account", account },
                { "description", description },
                { "abbreviation", abbreviation }
            };

其中帐户、描述和缩写都是动态填充的。此方法正确地遵循 JSON 的字符转义规则并防止我看到的 POST 错误。谢谢汤姆!