0

我正在用 Flash/AS2 编写一个 google gdata API 客户端(遗憾的是,此时不能选择迁移到 AS3)。通过 ClientLogin 登录可以正常工作,但后续请求将返回一个 302 重定向,其中包含我应该包含在未来请求中以避免 302 的 gsessionid。

Flash/AS2,AFAIK,不允许我以任何方式实际查询 http 错误响应正文,因此在返回 302 后,我无法真正看到这个 gsessionid。如果我已经有一个有效的 GoogleLogin 身份验证令牌,是否有一个 gdata api 调用将在 HTTP 200 响应中返回一个有效的 gsessionid,或者如果没有中间人代理,这是不可能的?

4

1 回答 1

0

唯一应该返回 gsessionid 的 Google Data API 是 Calendar Data API。据我所知,其他人都没有这样做。

话虽这么说,一般来说这里有选择:

  1. 从重定向正文中刮取 gsessionid 查询参数,这听起来像是您尝试过的。(一般来说,这是脆弱的,不是一个好主意。)
  2. 使用位于重定向Location:标头中的 gsessionid 查询参数。
  3. 重定向还将包含一个S=cookie。如果您可以确保为将来的请求设置此 cookie,Google 日历将使用它来代替 gsessionid 查询参数。

如果这些都不适合您,您唯一的选择是编写代理。没有办法在重定向之外获取 gsessionid,没有它,日历数据 API 将不会为请求提供服务。

于 2009-12-23T06:49:56.903 回答