除了從SharePoint 2013及更高版本中,爲SharePoint 2010 REST API支持相對限制的資源集合,特別是文件資源不被支持。
說了這麼多,你可以考慮下載文件下列方法。
爲了從庫中下載特定文件,讓我們假設 列表項ID是除了提供給網頁URL和庫名。
首先GET
請求返回所謂使用以下端點文檔項(Microsoft.SharePoint.DataService.DocumentsItem
型):
https://<weburl>/_vti_bin/listdata.svc/<listname>(<itemid>)
一旦文檔項目被檢索,文件URL可以從Path
和Name
性質萃取(見下面的例子),最後通過HTTP GET
下載
C#示例
var webUrl = "https://intranet.contoso.com/";
var listName = "Documents"; //<-list name goes here
var itemId = 1; //<-list item id goes here
using (var client = new WebClient())
{
client.BaseAddress = webUrl;
client.Credentials = credentials;
client.Headers.Add(HttpRequestHeader.Accept, "application/json;odata=verbose");
//client.Headers.Add("X-FORMS_BASED_AUTH_ACCEPTED", "f");
var url = String.Format("_vti_bin/listdata.svc/{0}({1})",listName,itemId);
var content = client.DownloadString(url);
var json = JObject.Parse(content);
//extract file url
var fileUrl = (string)json["d"]["Path"] + "/" + (string)json["d"]["Name"];
Console.WriteLine(fileUrl);
//download a file
var fileName = Path.GetFileName(fileUrl);
client.DownloadFile(fileUrl,fileName);
}