ASIHTTPRequest как войти?

Добрый день, коллеги-программисты.

Введение: я пытаюсь написать приложение (в obj-C, с X-кодом), которое позволяет мне войти на веб-сайт и делать некоторые вещи на этом веб-сайте. Я знаю C и C++, но это мое первое «настоящее приложение», которое я пытаюсь написать. Сначала я пытаюсь заставить его работать на моем Mac, а затем хочу написать такое же приложение для IOS.

Веб-сайт: https://www.mymeteor.ie.

1)Войти

NSURL *LOGIN_URL;
LOGIN_URL = [NSURL URLWithString:@"https://www.mymeteor.ie/go/mymeteor-login-manager"];

ASIFormDataRequest *request;

request = [ASIFormDataRequest requestWithURL:LOGIN_URL];    
[request setPostValue:@"**********" forKey:@"msisdn"]; //username
[request setPostValue:@"****" forKey:@"pin"];          //password
[request startSynchronous];

Код состояния, который возвращает этот запрос, когда я ввожу правильное имя пользователя и пароль, равен 200, а строка ответа — это следующая веб-страница, которую вы можете получить, только если вы вошли в систему.

Но если я ввожу другое имя пользователя и пароль, код состояния по-прежнему равен 200, но строка ответа снова является страницей входа.

Как проверить, авторизован ли я? Как только я войду в систему, я хочу использовать FreeWebText на сайте.

Как лучше всего это сделать? Любые советы?

Спасибо за помощь


person Ivan Bacher    schedule 09.02.2012    source источник


Ответы (1)


Вы захотите узнать, есть ли у MyMeteor API. API будет их предпочтительным способом для сторонних приложений для входа и взаимодействия с сайтом. Вместо того, чтобы возвращать HTML-код всей веб-страницы, API, скорее всего, вернет какой-то код авторизации или ошибку, если логин неверен.

Если у них нет API, вам нужно очистить возвращаемый HTML. Вы должны быть в состоянии найти уникальные различия между двумя страницами, которые скажут вам, действительно ли вы вошли в систему или нет. Это довольно ненадежно, так как каждый раз, когда они меняют сайт, это может привести к поломке вашего парсинга.

person Randall    schedule 09.02.2012
comment
Привет, спасибо за ответ. Я не думаю, что на сайте есть API (искал его последние пару дней), в любом случае, я попробую ваше предложение. Я также обнаружил, что всякий раз, когда кто-то успешно входит в систему, он получает CFID, CFTOKEN и jsessionid. Они отображаются в адресной строке. - person Ivan Bacher; 09.02.2012
comment
Отправляются ли они в заголовке ответа или в заголовке запроса или просто как метаданные? - person Ivan Bacher; 09.02.2012