Можно запросить gsessionid без ответа 302 - PullRequest
0 голосов
/ 23 декабря 2009

Я пишу клиент Google gdata API во Flash / AS2 (к сожалению, в настоящее время переход на AS3 невозможен). Вход через ClientLogin работает нормально, но последующие запросы будут возвращать перенаправление 302, которое включает gsessionid, который я должен включить в будущие запросы, чтобы избежать 302-х.

Flash / AS2, AFAIK, не позволяет мне фактически запрашивать тело ответа об ошибке http, поэтому у меня нет возможности увидеть этот gsessionid после возврата 302. Существует ли вызов API gdata, который вернет мне действительный gsessionid внутри ответа HTTP 200, если у меня уже есть действительный токен аутентификации GoogleLogin, или это невозможно без посредника посредника?

1 Ответ

0 голосов
/ 23 декабря 2009

Единственным API данных Google, который должен возвращать gsessionid, является API данных календаря. Насколько мне известно, никто из других не делает этого.

При этом, как правило, здесь есть варианты:

  1. Извлеките параметр запроса gsessionid из тела перенаправления, что, по вашему мнению, вы пытались сделать. (В общем, это хрупкая и не очень хорошая идея.)
  2. Используйте параметр запроса gsessionid, расположенный в заголовке Location: перенаправления.
  3. Перенаправление также будет содержать S= cookie. Если вы можете убедиться, что этот файл cookie настроен для будущих запросов, Календарь Google будет использовать его вместо параметра запроса gsessionid.

Если ни один из них не будет работать для вас, вы можете написать прокси-сервер. Невозможно получить gsessionid вне перенаправления, и API данных календаря не будет обслуживать запросы без него.

...