【发布时间】:2026-02-03 02:35:01
【问题描述】:
我想知道是否有人知道使用分析 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 密钥进行调用以授予新的访问令牌。
【问题讨论】:
-
你使用什么框架来调用?换句话说,你从哪里得到 GaData?
-
对不起,我不够具体。这是 google analytics java services api(工件是 google-api-services-analytics v3-rev10-1.7.2-beta)。