在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令牌,然后访问列表吗?
我基本上不知道,所以任何信息都将非常感谢。
使用以下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