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,这是完全没有必要的。
我尝试使用 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,这是完全没有必要的。