3

我正在尝试使用 REST Webservices 在 Project Server 2013 中创建一个项目,但是当我尝试向项目服务器发出 POST 请求时,我收到了 403 Forbidden Exception。基本疑问是“Project Server 是否允许执行 POST 请求?”

对于 GET 和 POST 请求以及 Project Server,端点 URL 是否保持相同

请为此提供一些输入。

代码如下:-

    Guid pguid = new Guid();
    string projGuid = pguid.ToString();
    string projName = "Mercedes";
    string startDate = DateTime.Now.ToShortDateString().ToString();


    string URI = "http://ServerName/projectservername/_api/ProjectData/Projects";
    //string URI = "http://ServerName/projectservername/Projects.aspx";
    //string myParameters = "BaselineNumber=0&ProjectId=c34ca0f0-1acd-e211-b2e80155def232b&ProjectName=ProjName;    
    string myParameters = "ProjectId=" + projGuid + "&ProjectName=" + projName +      "&ProjectStartDate="+ startDate;
    using (WebClient wc = new WebClient())
    {
        wc.Credentials = new System.Net.NetworkCredential(username, password, domain);
        wc.Headers[HttpRequestHeader.ContentType] = "application/x-www-form-urlencoded";
        wc.Headers.Add("X-HTTP-Method", "PUT");

        string HtmlResult = wc.UploadString(URI, myParameters);
      //  WebHeaderCollection head = wc.ResponseHeaders;


        Console.WriteLine(HtmlResult);
        Console.WriteLine("Bye");
    }
4

1 回答 1

1

/_api/ProjectData 是来自 SharePoint/Project Server 2010 的只读 ODATA 端点。在许多情况下,它对于报告类型查询更方便,但设计用途不止于此。/_api/ProjectServer 允许您执行 CRUD 操作,或调用其他 Project Server 方法,例如提交到工作流。与 SharePoint 一样,您需要先获取 X-Request-Digest 令牌,然后再使用 - /_api/ContextInfo 通过 POST 调用 CUD 操作,然后调用 /_api/ProjectServer

与 ProjectData 服务的 OData 接口(对于报告是只读的)不同,您可以使用带有 ProjectServer 服务的 REST 查询来执行 CRUD 操作。

于 2016-02-10T13:38:45.060 回答