[英]Pulling data from a list in SharePoint 2013 via REST
我正在尝试在Azure(C#)中构建将数据推送到客户端应用程序的移动服务。 我需要提取的数据来自一个我不太熟悉或无法访问的共享站点。
我已经在线阅读了一些资源,但是每当我尝试通过_api / web / lists /或_api / web / lists / getbytitle('pages')快速访问列表时, 都会收到身份验证提示。
这是默认行为还是其他api已关闭? 我需要构建一个共享点应用程序来生成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
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服务,并且已经创建了Digest以编程方式执行此操作:
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中的列表的帐户,则在将摘要传递给Digest之后,您应该能够使用该帐户对REST服务进行身份验证并检索列表项。 如果您有一个,我的博客上有很多此类示例的代码示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.