2013-07-25 38 views
3

我正嘗試使用REST Webservices在Project Server 2013中創建一個項目,但當我嘗試向項目服務器發出POST請求時,出現403 Forbidden異常。基本的疑問是「Project Server是否允許執行POST請求?」Project Server的REST Webservice 15

並執行端點URL保持相同的GET和POST請求通常以及爲Project Server

請提供同樣的一些投入。

的代碼是如下: -

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"); 
    } 
+0

您發送'PUT'請求,並沒有'POST'這裏。 –

+0

嗨對不起,上面的錯字。請考慮作爲POST請求。另外,我也沒有成功發出PUT請求。 –

+0

請發佈您正在使用的確切代碼。 –

回答

1

/_api/ProjectData的是從SharePoint /項目Server 2010的它在許多情況下,報告類型查詢更加方便只讀ODATA終點,但不設計遠不止於此。/_api/ProjectServer允許您執行CRUD操作,或者調用其他Project Server方法,例如提交給工作流。喜歡的SharePoint,你需要在調用了POST的CUD操作與之前首先獲得X-請求消化令牌 -/_api/ContextInfo然後調用/ _api /爲ProjectServer

不像的OData接口,爲ProjectData的服務,爲 只讀報告,您可以使用帶有ProjectServer服務的REST查詢 執行CRUD操作。

+0

非常有幫助。我正在尋找一種方法來修改ProjectData ... – infmja