0

我正在尝试解析登录到 iOS 应用程序后的网站,解析 HTML 标记在 hpple 上运行良好,但我不知道如何“通过”登录。

谢谢!

4

1 回答 1

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>将具有指向您需要发送帖子请求的位置的相对 url 。(此处的“”转到具有此表单的当前页面)。请注意示例中元素的name属性。<input>该属性将是parameters NSArray用于用户名和密码密码的密钥。

登录后,cookie 将自动设置和处理,然后您可以使用 AFNetworking 发送更多 GET 请求以获取需要登录的页面。

请注意,该示例使用的是 AFNetworking 2.0(我相信是今天发布的)。

于 2013-09-27T20:01:43.147 回答