如何在休息服务中更新共享点2013列表项

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在休息服务中更新共享点2013列表项相关的知识,希望对你有一定的参考价值。

这是我更新列表项的Rest服务

  • 网址:https://site/_api/lists/getbytitle('Test')/items(49)
  • X-RequestDigest: some unique id from contextinfo post service Content-Type: application/json;odata=verbose X-HTTP-Method: MERGE IF-MATCH: 49
  • 身体 { "__metadata": { "type": "SP.Data.TestListItem" }, "Title": "Title all1", "Option1": "Updated 2" }

当我在post man中运行此URL时出现错误

请求ETag值__metadata.etag与对象的ETag值"8"不匹配。

但是如果我将标题中的IF-MATCH值更改为*,它会正确更新。如果使用ETag,为什么我会收到错误?

答案

您错误地使用了ETag。 ETag将对应于项目的版本而不是项目的ID。

测试此方法的最佳方法是对项目执行get请求并查看ETag属性的元数据。你会看到类似的东西

{
    "__metadata": {
        "id":"Web/Lists(guid'xxxxxxxx')/Items(1)", 
        "uri":"https://site.sharepoint.com/site/subsite/_api/Web/Lists(guid'xxxxxx')/Items(1)",
        "etag":""12""
    } 
}

注意ETag的格式。

在更新项目的情况下,我无法想到将IF-MATCH用于特定ETag的任何充分理由。 ID的请求参数应该足够了。在想要PUT,MERGE或DELETE特定版本的项目时,需要使用ETag检查版本控制。

查看此Working with lists and list items with REST以获取更多信息。

以上是关于如何在休息服务中更新共享点2013列表项的主要内容,如果未能解决你的问题,请参考以下文章

如何在选择列表项时将文本框附加到来自共享点列表的复选框列表项

一旦单击带有 in 片段的回收器列表项,如何将片段意向活动,以及如何获取回收器项目值?

Android,从其他片段返回的空列表视图

如何防止在android片段中按下后退按钮时调用onCreateView

如何在片段转换中淡出非共享视图?

不要在片段中显示列表视图项