2016-11-11 67 views
0

Error 401 Not Authorized創建辦新事件365 API

我已經配置好了,下面的代碼通過按鈕運行:

//Karim 
string postData = "{\"Subject\": \"Discuss the Calendar REST API\",\"Body\": {\"ContentType\": \"HTML\",\"Content\": \"I think it will meet our requirements!\"},\"Start\": {\"DateTime\": \"2016 - 02 - 02T18: 00:00\",\"TimeZone\": \"Pacific Standard Time\"},\"End\": {\"DateTime\": \"2016 - 02 - 02T19: 00:00\",\"TimeZone\": \"Pacific Standard Time\"}}"; 
string Url = "https://outlook.office.com/api/v2.0/me/events"; 
HttpWebRequest myHttpWebRequest = (HttpWebRequest)HttpWebRequest.Create(Url); 
myHttpWebRequest.Method = "POST"; 

byte[] data = Encoding.ASCII.GetBytes(postData); 

myHttpWebRequest.ContentType = "application/json"; 
myHttpWebRequest.Accept = "application/json"; 
myHttpWebRequest.ContentLength = data.Length; 

Stream requestStream = myHttpWebRequest.GetRequestStream(); 
requestStream.Write(data, 0, data.Length); 
requestStream.Close(); 

HttpWebResponse myHttpWebResponse = (HttpWebResponse)myHttpWebRequest.GetResponse(); 

Stream responseStream = myHttpWebResponse.GetResponseStream(); 

StreamReader myStreamReader = new StreamReader(responseStream, Encoding.Default); 

this.Label1.Text = myStreamReader.ReadToEnd(); 

myStreamReader.Close(); 
responseStream.Close(); 

myHttpWebResponse.Close(); 
//End Karim 

我已經配置了Office 365的開發者工具,的NuGet,我使用Visual Studio 2015.

+0

只是兩個編碼技巧。 1不要將UI代碼this.Label1.Text與Web請求邏輯混合在一起。 2.你應該使用C#關鍵字[使用](https://msdn.microsoft.com/en-us/library/yh598w02.aspx) –

+0

我的回答對你有幫助嗎? –

回答

0

請求必須經過身份驗證和授權才能請求這些API。事實上,如果你沒有提供任何你代表誰來做這樣的請求的信息,誰會是「/我」?

要做到這一點你應該設定一個所謂的認證承載,它在C#.NET調用看起來像這樣的事情

request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<your access token as string here>"); 

要了解您檢索這樣的訪問令牌怎麼辦,開始與this documentation