我正在使用restsharp客户端。尝试创建补丁请求并更新几个字段。这是我第一次使用 RestSharp 的经历。我收到 json 解析器错误(JSON 补丁文档格式错误且无法解析)。
我可以毫无问题地执行 POST 请求。
这是我的代码:
var client = new RestClient(RequestProperties.ClientUrl + @"Jobs?id=" + jobs.JobAccessId.ToString());
var token = RequestProperties.Token;
client.AddDefaultHeader("Authorization", string.Format("Bearer {0}", token));
var request = new RestRequest(Method.PATCH) { RequestFormat = DataFormat.Json };
request.AddHeader("Postman-Token", token);
request.AddHeader("Cache-Control", "no-cache");
request.AddHeader("Content-Type", "application/json-patch+json");
request.AddJsonBody(new { op = "replace", path = "/shippedDate", value = jobs.ShippedDate });
request.AddJsonBody(new { op = "replace", path = "/statusdCode", value = jobs.StatusdCode.ToString() });
IRestResponse response = client.Execute(request);
最佳答案
此代码有几个问题:
- 最好为一个基本 URL 保留一个
RestClient
实例。基本 URL 不应包含任何参数值。 - 我们建议使用
AddQueryParameter
指定每个请求的查询参数。 - 您最好使用 JWT 授权方为请求提供不记名 token ,而不是手动添加 header 。它也是在客户端级别完成的。
- 使用
AddJsonBody
时,无需添加内容类型和请求数据类型,一切都会自动完成。 - 也许最重要的是,对于任何类型的请求,您只能有一个正文参数。这不是 RestSharp 的限制,这就是 HTTP 的工作原理。
关于c# - Restsharp 补丁请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59337257/