通过Grap API

时间:2018-02-19 08:38:30

标签: c# api graph etag

我尝试通过Grap API向Office365 Planner任务添加说明。

必要的HttpRequest需要" If-Match"带有Etag值的标题中的条目。我从之前的请求中获取Etag到任务详细信息。我得到的Etag看起来像这样:

"@odata.etag": "W/\"JzEtVGFza0RldGFpbHMgQEBAQEBAQEBAQEBAQEBASCc=\""

正如您所看到的,此Etag字符串中有两个 \" 会导致一些问题。

在我的代码中,我尝试了以下三种方法来创建" If-Match"标题没有成功:

1. request.Headers.IfMatch.Add(new EntityTagHeaderValue(etag));
2. request.Headers.IfMatch.Add(EntityTagHeaderValue.Parse(etag));
3. request.Headers.TryAddWithoutValidation("If-Match", etag);

第1行导致异常,因为"在字符串中。 第2行和第3行导致"未找到"请求的响应,因为Etag中缺少\字符。 VS调试器显示IfMatch属性的以下内容:

"W/"JzEtVGFza0RldGFpbHMgQEBAQEBAQEBAQEBAQEBASCc=""

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

好的,问题解决了。

Etag不是非工作更新请求的原因。收到的错误具有误导性。

需要使用HttpMethod“PATCH”而不是“POST”。