2011-08-30 87 views

回答

1

在Google服務的HTTP響應中沒有提供到期時間,所以我認爲您需要確保如果auth令牌無法提供訪問權限,您可以使用它作爲獲取新的auth令牌的觸發器。或者每次應用程序啓動時都可以獲取新的令牌,或者創建自己的超時。

http://code.google.com/apis/accounts/docs/AuthForInstalledApps.html

-2

你需要調用invalidateAuthToken(String, String)當你知道令牌已過期。即當請求失敗並帶有驗證錯誤時。

+2

是的,我的問題是什麼是最好的方式來找出你的令牌是否過期。 –

1

查看HTTP響應,狀態碼是302(它將您重定向到提供身份驗證令牌)並且標頭中的「Set-Cookie」字段爲不存在。你可以把它關掉。

if (res.getStatusLine().getStatusCode() == 302 && res.getHeaders("Set-Cookie").length == 0) { 
    // we need a new token 
    // invalidate account manager logic here 
} 

未能從谷歌獲得該cookie似乎意味着它的時間搶從的AccountManager一個新的令牌。

0

由於目前還沒有被接受的答案: 我通過在try塊中觸發我的請求,然後捕獲任何異常並檢查它是否爲401與if (e.getMessage().equals("401 Unauthorized")) { ... }。 然後,使認證令牌失效,請求一個新的認證令牌並重試該請求。