我尝试通过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=""
感谢您的帮助。
答案 0 :(得分:0)
好的,问题解决了。
Etag不是非工作更新请求的原因。收到的错误具有误导性。
需要使用HttpMethod“PATCH”而不是“POST”。