0

私は、Web サーバー アプリケーション、特に asp.net mvc 用の Google の OAuth API を使用しており、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 は、URL のコード、client_secret、client_id などのパラメーターを含む URL を返すメソッド getTokenUrl() を含む、私が作成した単なるクラスです: 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 に答える