【问题标题】:Possible to request gsessionid without a 302 response可以在没有 302 响应的情况下请求 gsessionid
【发布时间】:2011-06-24 10:57:26
【问题描述】:
我正在用 Flash/AS2 编写一个 google gdata API 客户端(遗憾的是,目前无法选择迁移到 AS3)。通过 ClientLogin 登录可以正常工作,但后续请求将返回一个 302 重定向,其中包含我应该包含在未来请求中以避免 302 的 gsessionid。
Flash/AS2,AFAIK,不允许我以任何方式实际查询 http 错误响应正文,因此在返回 302 后,我无法真正看到这个 gsessionid。如果我已经有一个有效的 GoogleLogin 身份验证令牌,是否有一个 gdata api 调用将在 HTTP 200 响应中返回一个有效的 gsessionid,或者如果没有中间人代理,这是不可能的?
【问题讨论】:
标签:
flash
actionscript
calendar
gdata
【解决方案1】:
唯一应该返回 gsessionid 的 Google 数据 API 是日历数据 API。据我所知,其他人都没有这样做。
话虽如此,一般来说这里有选择:
- 从重定向正文中抓取 gsessionid 查询参数,这听起来像是您尝试过的。 (总的来说,这很脆弱,不是一个好主意。)
- 使用位于重定向
Location: 标头中的 gsessionid 查询参数。
- 重定向还将包含一个
S= cookie。如果您可以确保为将来的请求设置此 cookie,Google 日历将使用它来代替 gsessionid 查询参数。
如果这些都不适合你,你唯一的选择就是写一个代理。没有办法在重定向之外获取 gsessionid,没有它,日历数据 API 将无法处理请求。