我正在尝试解析一个登录到iOS应用程序之后的网站,解析HTML标签与hpple工作正常,但我不知道如何“通过”登录。
THX!
答案 0 :(得分:1)
要登录网站,您需要发送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>
属性将相对网址发送到您需要发送帖子请求的地方。 (“”在此处转到当前具有此表单的页面)。请注意示例中name
元素上的<input>
属性。该属性是在parameters
NSArray
中使用用户名和密码密码的关键。
登录后,将自动设置和处理cookie,然后您可以使用AFNetworking发送更多GET请求以获取需要登录的页面。
请注意,该示例使用的是AFNetworking 2.0(我相信今天发布)。