Microsoft Live自定义C#REST API错误415

时间:2014-03-13 15:47:27

标签: c# .net api rest


我试图从Microsoft Live API获取数据。但是,当我尝试获取access_token时,我得到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]是一个字符串,由Microsoft在用户登录后给出(这部分代码可以正常工作);
  • [client_id]是一个字符串,由Microsoft提供,代表我的客户端ID;
  • [client_secret]是一个字符串,由Microsoft提供,代表我的客户机密;
  • [redirect_uri]是网站返回位置的网址(与用户同意代码中使用的网址相同(参​​见[code]))

根据Microsoft Live API手册(http://msdn.microsoft.com/en-us/library/live/hh243647.aspx),这应该可行。但是,文档并不十分详细。

有谁知道我为什么一直收到错误?

谢谢!

1 个答案:

答案 0 :(得分:0)

没关系,我是个白痴......

毕竟它确实有效。在这之后我又做了一个请求。那个失败了,因为我没有在那里包含参数。