0

我正在使用用于 Web 服务器应用程序的谷歌 OAuth api,特别是 asp.net mvc,并且我能够到达谷歌为某个 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,如 url 的 code、client_secret、client_id 等:https ://accounts.google.com/o/oauth2/token . 我已经调试并检查了这个 url 没有问题。

我不断收到以下错误:远程服务器返回错误:(411)需要长度。

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

4

1 回答 1

0

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

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

于 2012-11-17T08:42:13.550 回答