Oauth 谷歌分析服务API-确定访问令牌是否过期

Oauth 谷歌分析服务API-确定访问令牌是否过期,oauth,google-analytics,Oauth,Google Analytics,我想知道是否有人知道用analytics API检测401响应的干净编程方法。我知道底层HTTP传输可能有它,但当通过Analytics对象进行调用时,唯一的失败指示器是IOException(它可能指示任何类型的错误)。如果有某种方法可以获取堆栈跟踪中显示的JSON响应,您可以在那里进行检查,但现在我唯一能想到的是解析e.getMessage()字符串。例如: GaData gadata = null; try { gaData = analytics.data().ga().get(

我想知道是否有人知道用analytics API检测401响应的干净编程方法。我知道底层HTTP传输可能有它,但当通过Analytics对象进行调用时,唯一的失败指示器是IOException(它可能指示任何类型的错误)。如果有某种方法可以获取堆栈跟踪中显示的JSON响应,您可以在那里进行检查,但现在我唯一能想到的是解析e.getMessage()字符串。例如:

GaData gadata = null;
try {
    gaData = analytics.data().ga().get(
            "ga:" + profileId,
            "2012-06-01",
            "2012-06-30",
            "ga:visits")
            .execute();
} catch (IOException ioe) {
    if (ioe.contains("401")) {
        System.out.println("A 401 occurred.");
    }
}

隔离这种情况的原因是,它表明访问令牌已过期,因此,另一种解决方案是检查访问令牌是否已过期的更好方法。如果可以这样做,那么代码可以使用API键进行调用,以授予新的访问令牌。

表示将抛出。GoogleJsonResponseException.getDetails()返回一个。GoogleJsonError.code方法将返回错误代码(在本例中为HTTP 401错误)。

您使用什么框架进行调用?换句话说,你是从哪里得到伽达的?对不起,我说得不够具体。这是google analytics java services api(工件是google api services analytics v3-rev10-1.7.2-beta)。