Restsharp补丁请求

时间:2019-12-14 17:00:15

标签: c# for-loop restsharp

我正在使用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);

1 个答案:

答案 0 :(得分:0)

此代码存在几个问题:

  1. 最好为一个基本URL保留一个RestClient实例。基本网址不应包含任何参数值。
  2. 我们建议您使用AddQueryParameter为每个请求指定查询参数。
  3. 您最好使用JWT授权器为请求提供承载令牌,而不是手动添加标头。这也是在客户端级别完成的。
  4. 使用AddJsonBody时,无需添加内容类型和请求数据类型,这一切都是自动完成的。
  5. 最重要的是,对于任何类型的请求,您只能具有一个主体参数。这不是RestSharp的限制,而是HTTP的工作方式。