C#使用REST API将项目添加到Sharepoint列表

时间:2015-09-23 08:18:09

标签: c# rest sharepoint sharepoint-2013

我想使用以下代码将项目添加到sharepoint中的列表:

"v=spf1 redirect=mydomain.com"

使用以下代码调用上述方法:

protected string httpGetPost(string getPostMode, string url, string dataToPost = "")
{
    HttpWebRequest endpointRequest = (HttpWebRequest)WebRequest.Create(url);
    endpointRequest.Method = getPostMode;

    var credentialCache = new CredentialCache();
    credentialCache.Add(
      new Uri(endpointRequest.RequestUri.GetLeftPart(UriPartial.Authority)), // request url's host
      "Digest",  // authentication type 
      new NetworkCredential(userName, password) // credentials 
    );
    endpointRequest.Credentials = credentialCache;

    endpointRequest.Accept = "application/json;odata=verbose";
    endpointRequest.ContentType = "application/json;odata=verbose";

    if (!string.IsNullOrEmpty(dataToPost))
    {
        using (Stream dataStream = endpointRequest.GetRequestStream())
        {
            byte[] bs = Encoding.ASCII.GetBytes(dataToPost);
            dataStream.Write(bs, 0, bs.Length);
        }
    }
    using (var resp = endpointRequest.GetResponse())
    {
        var html = new StreamReader(resp.GetResponseStream()).ReadToEnd();
        return html;
    }
}

这是我发布的数据:

  

{“__ metadata”:{“type”:“SP.Data.Test_x0020_ListListItem”},“标题”:   “测试”,“B栏”,“BBB”}

我看了一下这个网站httpGetPost("POST", url, "{\"__metadata\": { \"type\": \"SP.Data.Test_x0020_ListListItem\" }, \"Title\": \"Test\", \"Column B\", \"BBB\"}"); ,但是授权是不同的,它使用的是accessstoken,但问题出在这里:

在这个网站:https://msdn.microsoft.com/en-us/library/office/dn292552.aspx,它说我无法获得accessstoken,所以我使用用户名和密码登录sharepoint,但是这里出现了另一个问题:

http://sharepoint.stackexchange.com/questions/69617/sharepoint-2013-oauth-url-to-get-token中出现System.Net.WebException,错误是var resp = endpointRequest.GetResponse()

该帐户是域管理员以及共享点管理员。

为什么我仍然收到403错误?

由于某些原因,我只能使用REST API与sharepoint进行通信。

1 个答案:

答案 0 :(得分:1)

这是实现目标的略有不同的方法。在此示例中,某些对象特定于Store Apps,但它们都可以轻松地替换为标准应用中的其他值。

toFixed