使用restSharp通知API更新页面



我试图使用RestSharp在Notion buy上更新页面,我有一个错误"解析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用于添加将由RestSharp序列化为JSON的对象。

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

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

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

最新更新