在SharePoint 2013中通过REST从列表中提取数据

本文关键字:列表 提取 数据 REST SharePoint 2013 | 更新日期: 2023-09-27 18:01:45

我正在尝试在Azure (c#)中构建一个移动服务,将数据推送到客户端应用程序。我需要拉的数据是从一个sharepoint网站,我不是很熟悉,也没有访问权限。

我已经在网上阅读了一些资源,但每当我试图通过_api/web/lists/_api/web/lists/getbytitle('pages')快速访问列表时,我得到一个身份验证提示。

这是默认行为还是其余api已关闭?我需要建立一个sharepoint应用程序来生成一个oauth令牌,然后访问列表吗?

我基本上不知道,所以任何信息都将非常感谢。

在SharePoint 2013中通过REST从列表中提取数据

使用以下url:

  • 获取所有列表 http://servername/_api/web1/web2/lists/
  • 按标题获取列表 http://servername/_api/web1/web2/lists/GetByTitle('myList')
  • 获取特定列表中的所有项目http://servername/_api/web1/web2/lists/GetByTitle('myList')/items
  • 按项目ID列出项目 http://servername/_api/web1/web2/lists/GetByTitle('myList')/items/GetItemById(4)
  • 返回具有特定字段的项 http://servername/_api/web1/web2/lists/GetByTitle('myList')/items?$select=Title,Age

详情请浏览链接http://wmostafaw.wordpress.com/2012/11/17/odata-in-sharepoint-2013-lists-and-items/

这是默认行为。您将需要凭据来访问REST服务,并且您已经创建了一个摘要以编程方式完成此操作:

String retVal = "";
    try
    {
         string url = "https://YourSite.com/";
         HttpClient client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true });
          client.BaseAddress = new System.Uri(url);
          string cmd = "_api/contextinfo";
          client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose");
          client.DefaultRequestHeaders.Add("ContentType", "application/json");
          client.DefaultRequestHeaders.Add("ContentLength", "0");
          StringContent httpContent = new StringContent("");
          var response = client.PostAsync(cmd, httpContent).Result;
          if (response.IsSuccessStatusCode)
          {
              string content = response.Content.ReadAsStringAsync().Result;
               JsonObject val = JsonValue.Parse(content).GetObject();
               JsonObject d = val.GetNamedObject("d");
               JsonObject wi = d.GetNamedObject("GetContextWebInformation");
               retVal = wi.GetNamedString("FormDigestValue");
           }
     }
     catch
     { }
return retVal;

如果你有一个可以在SharePoint中访问列表的帐户,那么你应该能够使用相同的帐户对REST服务进行身份验证,并在传递摘要后检索列表项。如果你有一个,我的博客上有很多这类应用程序的代码示例。

有一堆来自MSDN的内容:http://msdn.microsoft.com/en-us/library/office/jj164022(v=office.15).aspx

这里也有很多代码示例:http://msdn.microsoft.com/en-us/library/office/jj860569(v=office.15).aspx