[C#.NET][Sharepoint 2013] 如何使用 REST API 上传文件 for X-R
[C#.NET][Sharepoint 2013] 如何使用 REST API 上传文件 for X-RequestDigest header 续上篇,http://www.dotblogs.com.tw/yc421206/archive/2014/06/12/145512.aspx 本文章节
准备工作 根据下图,新增文件需要: 1.URI 为 http://sps2013/CsomApi/_api/web/GetFolderByServerRelativeUrl(‘Shared%20Documents‘)/Files/add(url=‘myDoc.docx‘,overwrite=true) 2.使用 HttpMethod.Post 3.根据 http://msdn.microsoft.com/en-us/library/office/jj164022%28v=office.15%29.aspx#bk_requestElements 所述 ,使用 OAuth 选 Authentication header ;反之选 X-RequestDigest header,本篇使用 X-RequestDigest header 下图出自,http://zoom.it/zdjx#full
取得 FormDigestValue for? Advanced REST client URI 为 http://sps2013/_api/contextinfo
取得 FormDigestValue for? C# 整个数据取得的方式并不困难,这里使用了Linq to Json (Json.NET from NuGet)将 FormDigestValue 拿出来 { HttpClientHandler httpClientHandler = new HttpClientHandler() { Credentials = new NetworkCredential(YourId,YourPassword,YourDomain) }; using (var httpClient = new HttpClient(httpClientHandler)) { httpClient.BaseAddress = new Uri("http://sps2013"); httpClient.DefaultRequestHeaders.Add("Accept","application/json;odata=verbose"); HttpResponseMessage response = httpClient.PostAsync("/_api/contextinfo",null).Result; HttpRequestMessage a = new HttpRequestMessage(); a.Method = HttpMethod.Post; if (response.StatusCode == HttpStatusCode.OK) { var result = response.Content.ReadAsStringAsync().Result; JObject jsonObject = JObject.Parse(result); var formDigestValue = jsonObject.Descendants() .OfType 上传文件 for C# 最重要的是要带入 X-RequestDigest header { HttpClientHandler httpClientHandler = new HttpClientHandler() { Credentials = new NetworkCredential(YourId,YourDomain) }; using (var httpClient = new HttpClient(httpClientHandler)) { httpClient.BaseAddress = new Uri("http://sps2013/CsomApi"); httpClient.DefaultRequestHeaders.Add("Accept","application/json;odata=verbose"); httpClient.DefaultRequestHeaders.Add("X-RequestDigest",GetFormDigestValue()); FileStream uploadStream = new FileStream("myDoc.docx",FileMode.Open,FileAccess.Read); HttpContent uploadContent = new StreamContent(uploadStream); HttpResponseMessage response = httpClient.PostAsync( "/_api/Web/GetFolderByServerRelativeUrl(‘Shared%20Documents‘)/Files/add(url=‘myDoc.docx‘,overwrite=true)",uploadContent).Result; if (response.StatusCode == HttpStatusCode.OK) { var result = response.Content.ReadAsStringAsync().Result; Console.WriteLine(result); } Console.WriteLine("successful down file,please press any key contiune"); Console.ReadKey(); } }
本文出自:http://www.dotblogs.com.tw/yc421206/archive/2014/06/12/145518.aspx 若有谬误,烦请告知,新手发帖请多包涵 原文:大专栏 ?[C#.NET][Sharepoint 2013] 如何使用 REST API 上传文件 for X-RequestDigest header (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |