Notion API 使用 restSharp 更新页面

Notion API Update page using restSharp

我尝试使用 RestSharp 更新 Notion 购买页面 我遇到错误“解析 JSON 正文时出错”

private RestRequest WebRequestWithParam(string url, Method method, string param)
    {
        var request = new RestRequest(url, method);
        request.AddHeader("Authorization", $"Bearer {apiKey}");
        request.AddHeader("Content-Type", "application/json");
        request.AddHeader("Notion-Version", "2021-08-16");

        request.AddJsonBody(param);
        return request;
    }


    public async Task UpdatePageJSON(string page_id, string param, Action<string> callback)
    {
        var url = $"{urlPage}/{page_id}";
        var request = WebRequestWithParam(url, Method.Patch, param);
        var client = new RestClient();
        var t = await client.ExecuteAsync(request);
        callback(t.Content);
    }

我的参数是一个 json 字符串:

string param = "{\"properties\": {\"In stock\": { \"checkbox\": true }}}";

当我使用具有相同参数字符串的 HttpWebRequest 而不是 RestSharp 时,它工作正常。 参考页:https://developers.notion.com/reference/patch-page

有什么想法吗?谢谢

因为AddJson用于添加objects,将被RestSharp序列化为JSON。

如果您需要发送 JSON 字符串,请使用 AddStringBody:

var request = new RestRequest(url, method).AddStringBody(param, "application/json");

建议手动添加内容类型header,这是完全没有必要的。