Я пытаюсь проанализировать веб-сайт, который после входа в приложение iOS, разбор тегов HTML отлично работает с hpple, но я не знаю, как "пройти" через Login.
Спасибо!
Чтобы войти на сайт, вам необходимо отправить запрос POST. AFNetworking упрощает это.
С AFNetworking:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.responseSerializer = [AFHTTPResponseSerializer serializer];
NSDictionary *parameters = @{@"usernameKey": @"theUsernameForTheWebsite",@"passwordKey": @"thePasswordForWebsite"};
[manager POST:@"http://example.com/loginpage.php" parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
NSLog(@"Response: %@", responseObject);
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
NSLog(@"Error: %@", error);
}];
Чтобы адаптировать приведенный выше пример для вашего использования, посмотрите на этот пример HTML-форму:
<form class="form-horizontal" action="" method="post">
<div class="form-group">
<label for="inputUsername" class="col-lg-2 col-md-2 control-label">Username</label>
<div class="col-lg-4 col-md-4">
<input type="text" class="form-control" id="inputUsername" placeholder="Username" name="inputUsername">
</div>
</div>
<div class="form-group">
<label for="inputPassword" class="col-lg-2 col-md-2 control-label">Password</label>
<div class="col-lg-4 col-md-4">
<input type="password" class="form-control" id="inputPassword" name="inputPassword" placeholder="Password">
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-lg-10">
<button type="submit" class="btn btn-primary">Sign in</button>
</div>
</div>
</form>
Атрибут action
в элементе <form>
будет иметь относительный URL-адрес в том месте, где вам нужно отправить запрос на отправку. ("" в этом идет на текущую страницу, на которой есть эта форма). Обратите внимание на пример атрибута name
на элементах <input>
. Этот атрибут будет ключом к использованию в parameters
NSArray
для пароля имени пользователя и пароля.
После входа в систему файлы cookie будут установлены и обработаны автоматически, и затем вы сможете использовать AFNetworking для отправки дополнительных запросов GET для получения страниц, требующих входа в систему.
Обратите внимание, что в этом примере используется AFNetworking 2.0 (выпущенный сегодня, я считаю).
[NSString stringWithUTF8String:responseData.bytes]