2012-11-17 64 views
0

我正在與谷歌的OAuth api的web服務器應用程序,特別是asp.net mvc,我能夠達到谷歌返回某個oauth請求的授權碼的點。在這一點上,我想用下面的代碼來獲得訪問令牌:谷歌oauth訪問令牌411響應

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 ,client_secret,client_id等的url:https://accounts.google.com/o/oauth2/token。我已經調試並檢查了這個URL沒有任何問題。

我不斷收到以下錯誤:遠程服務器返回錯誤:(411)長度必需。

我不知道如何指定內容長度,或者如果還有其他內容需要包含來解決此錯誤?

回答

0

您是否試圖看看Google-API .NET Client

如果您進行調試,您會發現Google在發送訪問令牌請求時使用「length」作爲內部屬性。你可以嘗試自己修復它,但是你可以使用THEIR類來發送令牌請求;如果你使用他們的課程,你不必擔心內部如長度...

+0

我已經多次下載該庫,但因爲當我解壓縮zip文件,它只是說'無法打開文件google-api-dot-net-client.zip「,所以我無法使用谷歌的客戶端庫。 –

+0

如果你發現很難打開壓縮文件(可能會損壞等) - 試着解決這個問題並繼續;我認爲這並不是一個很好的理由,當你通過Google實現它時你自己實現的東西......試着理解爲什麼它不能在你的環境中打開。 – OhadR