Работа с файлами cookie и Reddit на iPhone

Я создаю клиент Reddit для iPad и iPhone. Я знаю, что есть и другие клиенты, но у меня есть действительно крутые идеи для просмотра Reddit с вкладками :D

Во всяком случае, я сначала работаю над бэкэндом, и мне было интересно, как лучше всего справиться с моим файлом cookie. Я использую ASIFormDataRequest и ASIHTTPRequest, чтобы получить файл cookie и сделать запросы для историй и пользовательских субреддитов. Мой вопрос: как я узнаю, что срок действия файла cookie истек, и я больше не вхожу в систему?

Глупое решение (на мой взгляд) состояло бы в том, чтобы просто снова войти в систему, прежде чем делать какие-либо запросы данных... но это кажется глупым.

Другим решением было бы специально проверить разные ответы на разные запросы к Reddit и получить мой статус входа в систему.

Еще ЛУЧШЕ было бы каким-то образом узнать, есть ли у меня файл cookie в хранилище файлов cookie iPhone, связанный с Reddit, и, если нет, войти в систему. Итак, есть ли способ сделать это?


person Matt Egan    schedule 18.10.2010    source источник


Ответы (1)


У меня нет каких-либо конкретных знаний о Reddit, однако обычный способ справиться с этим — сделать запрос, а затем посмотреть, есть ли у вас сообщение об ошибке «Не вошел в систему» ​​в качестве ответа.

Проверить, есть ли в магазине куки или нет, можно с помощью

[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[url absoluteURL]]

однако это не скажет вам, действителен ли файл cookie - срок его действия мог быть истек на стороне сервера или он мог стать недействительным на стороне сервера, поэтому вам все равно придется проверять ответы на ошибки «Не вошел в систему». (Хотя из документации по API следует, что Reddit устанавливает только файлы cookie сеанса, поэтому они никогда не появятся в постоянном хранилище — в этом случае вы можете использовать [ASIHTTPRequest sessionCookies], чтобы просмотреть файлы cookie.)

person JosephH    schedule 18.10.2010