2014-03-13 58 views
1


我試圖從Microsoft Live API獲取數據。但是,當我嘗試獲取access_token時,我得到415(不支持的媒體類型)錯誤消息。我看起來幾乎到處都是,但我找不到任何答案(對我有用)。Microsoft Live定製C#REST API錯誤415

這裏是我的(部分)的代碼,試圖獲得令牌(dataToWrite切割機的可讀性,它在實際一行代碼):

WebRequest request; 
request = WebRequest.Create("https://login.live.com/oauth20_token.srf"); 
request.Method = "POST"; 
request.ContentType = "application/x-www-form-urlencoded"; 
var dataToWrite = "code=[code]& 
    client_id=[client_id]& 
    client_secret=[client_secret]& 
    redirect_uri=[redirect_uri]& 
    grant_type=authorization_code"; 

var buffer = Encoding.ASCII.GetBytes(dataToWrite); 
request.ContentLength = buffer.Length; 
var dataStream = request.GetRequestStream(); 
dataStream.Write(buffer, 0, buffer.Length); 
dataStream.Close(); 

var response = request.GetResponse(); 
var responseStream = response.GetResponseStream(); 

凡「[]」是:

  • [code]是一個字符串,由微軟在用戶登錄後給出(這部分代碼有效);
  • [client_id]是微軟給出的一個字符串,代表我的客戶端ID;
  • [client_secret]是微軟給出的一個字符串,代表我的客戶機密;
  • [REDIRECT_URI]是該網站的回報位置的URL(同爲用戶同意的代碼中使用的URL(參見[代碼]))

根據微軟Live API的手冊(http://msdn.microsoft.com/en-us/library/live/hh243647.aspx )這應該工作。但是,文檔不是很詳細。

有誰知道爲什麼我不斷收到錯誤?

謝謝!

回答

0

沒關係,我是一個白癡......

它確實工作。在這之後我做了另一個請求。那個失敗了,因爲我沒有在那裏包含參數。