[C#の.NET] [Sharepointの2013] X-RequestDigestヘッダー用のファイルをアップロードするREST APIを使用する方法
継続的な記事は、http://www.dotblogs.com.tw/yc421206/archive/2014/06/12/145512.aspx
この記事のセクション
- 準備
- 高度なRESTクライアントのために取得FormDigestValue
- C#のためFormDigestValueを取得
- C#のためにファイルをアップロード
準備
以下の図によると、新しいドキュメント:
1.URI为ます。http:// sps2013 / CsomApi / _API /ウェブ/ GetFolderByServerRelativeUrl( '共有%20Documents')/ファイル/追加(URL = 'myDoc.docx'、上書き=真)
2. HttpMethod.Post
認証ヘッダから選択http://msdn.microsoft.com/en-us/library/office/jj164022%28v=office.15%29.aspx#bk_requestElements使用のOAuth、逆にX-RequestDigestヘッダから選択X-RequestDigestヘッダを用いBenpian
次の図は、http://zoom.it/zdjx#full
高度なRESTクライアントのために取得FormDigestValue
URI为ます。http:// sps2013 / _API / contextinfo
C#のためFormDigestValueを取得
取得データ全体がここにJSON(NuGetからJson.NET)へのLINQを使用して、難しいことではない方法が出て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().First(p => p.Name == "FormDigestValue") .Value; return formDigestValue.ToString(); } return null; } }
上传文件 for C#
最重要的是要带入 X-RequestDigest header
{ HttpClientHandler httpClientHandler = new HttpClientHandler() { Credentials = new NetworkCredential(YourId, YourPassword, 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の結果= response.Content.ReadAsStringAsync()は、結果。 Console.WriteLineを(結果)。 } Console.WriteLineを(「成功ダウンファイル、任意のキーcontiuneを押してください」); Console.ReadKey(); } }
ます。http://www.dotblogs.com.tw/yc421206/archive/2014/06/12/145518.aspxこの記事はから来ています
エラーした場合、負担する彼を投稿初心者を通知してください
第4四半期の2010〜2017のC#
オリジナル:大列 [C#の.NET] [Sharepointの2013 ] X-RequestDigestヘッダー用のファイルをアップロードするREST APIを使用する方法