谷歌oauth访问令牌411响应

时间:2012-11-17 05:35:22

标签: c# asp.net-mvc google-api oauth-2.0 google-oauth

我正在使用google的OAuth api进行网络服务器应用程序,特别是asp.net mvc,我能够达到google为某个oauth请求返回授权代码的程度。那时,我正在尝试使用以下代码获取访问令牌:

public ActionResult GetOAuthToken()
{
     HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(OAuthConfig.getTokenUrl(Request.QueryString["code"].ToString()));
     myReq.Method = "POST";
     myReq.Host = "accounts.google.com";
     myReq.ContentType = "application/x-www-form-urlencoded";
     WebResponse resp = myReq.GetResponse();
     return View();
 }

OAuthConfig只是我编写的一个类,它包含一个方法getTokenUrl(),它返回一个url,其中包含code,client_secret,client_id等参数,用于url:https://accounts.google.com/o/oauth2/token。我已经调试并检查了这个网址没有任何问题。

我一直收到以下错误:远程服务器返回错误:(411)长度必需。

我不知道要为内容长度指定什么,或者是否还需要包含其他内容来修复此错误?

1 个答案:

答案 0 :(得分:0)

您是否曾尝试查看Google-API .NET Client

如果您调试,您会看到Google在发送访问令牌请求时使用“length”作为内部属性。您可以尝试自己修复它,但是您可以使用THEIR类来发送令牌请求;如果你使用他们的课程,你不必担心内部如长......