У меня есть скрипт php на моем сервере. Я начал тестировать его с помощью Postman for Chrome. Работало без нареканий. Однако если я вызову тот же точный URL через AFNetworking, массив SESSION в PHP не будет поддерживаться.
Еще одна интересная проблема заключается в том, что если я запускаю скрипт с локального хоста с помощью MAMP, массив SESSION сохраняется и в приложении iOS.
В чем может быть проблема?
ОБНОВИТЬ:
я использую HostGator и я обнаружил, что session_id () продолжает меняться при вызове из приложения iOS, но не из Почтальона. Не меняется и на localhost.
ОБНОВЛЕНИЕ 2:
session_id () сохраняет изменения только в том случае, если приложение было прервано, и затем я снова вызываю вход в viewDidLoad, не выходя из системы до завершения работы приложения.
СМОТРИТЕ РЕШЕНИЕ НИЖЕ!
Да, это обязательно произойдет. Обычно браузер выполняет работу с данными сеанса. Приложение iOS, вызывающее ваше преимущество, должно прочитать данные cookie из заголовка http, чтобы получить сеанс и обработать его вручную. Так что читайте заголовки из ответа, сохраняйте куки сессии и добавляйте их при выполнении последующих запросов. В противном случае они будут раздеты.
Я не знаю, как это сделать в вашем приложении для iOS, так как я веб-разработчик. Извини за это.
Soo .. Как оказалось, проблема не имела никакого отношения к конфигурации моего сервера.
Я делал несколько запросов к серверу из приложения, и некоторые запросы возвращались быстрее, чем запрос на вход, даже если он был выдан первым. Это привело к тому, что запрос на вход в систему отличался от session_id () от других запросов.
Причина, по которой это показывается только на реальных серверах, а не на локальном, заключается в том, что локальный сервер был достаточно быстрым, чтобы сначала обработать запрос на вход.
В то время как Почтальон работал потому, что от Почтальона я мог сделать только один запрос за раз.
Извините, если это вызвало у кого-то головную боль ..