[C#の.NET] [Sharepointの2013] X-RequestDigestヘッダー用のファイルをアップロードするREST APIを使用する方法

[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を使用する方法


おすすめ

転載: www.cnblogs.com/petewell/p/11457854.html