我正在使用用于 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)需要长度。
我不知道要为内容长度指定什么,或者是否需要包含其他内容来修复此错误?