Objective c 成功POST请求后打开第二个控制器

Objective c 成功POST请求后打开第二个控制器,objective-c,macos,post,webview,afnetworking-2,Objective C,Macos,Post,Webview,Afnetworking 2,我只学Obj-c。我正在发送登录名和密码,返回html页面,如何在请求后打开页面并关闭loginWindowController?请求本身是: NSString *myLogin = usernameTextField.stringValue; NSString *myPassword = passwordTextField.stringValue; NSString *myFlash = flashpasswordTextField.stringValue; N

我只学Obj-c。我正在发送登录名和密码,返回html页面,如何在请求后打开页面并关闭loginWindowController?请求本身是:

    NSString *myLogin = usernameTextField.stringValue;
    NSString *myPassword = passwordTextField.stringValue;
    NSString *myFlash = flashpasswordTextField.stringValue;
    NSString *myNid = @"123456";
    NSString *urlString = @"http://neverlands.ru/game.php";
    NSString *ua = @"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36";

    AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
    manager.responseSerializer = [AFHTTPResponseSerializer serializer];
    AFHTTPRequestSerializer * requestSerializer = [AFHTTPRequestSerializer serializer];
    [requestSerializer setValue:ua forHTTPHeaderField:@"User-Agent"];
    manager.requestSerializer = requestSerializer;
    AFHTTPResponseSerializer * responseSerializer = [AFHTTPResponseSerializer serializer];
    manager.responseSerializer = responseSerializer;
    NSDictionary *parameters = @{@"player_nick": myLogin, @"player_password": myPassword};
    [manager POST:urlString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
        //Условия после запроса 1
        if ([operation.responseString rangeOfString:@"NeverLands: Земли, которых нет... - Второй пароль"].location == NSNotFound) {
            NSLog(@"Неверный логин или пароль");
        } else {
            NSDictionary *parameters = @{@"flcheck": myFlash, @"nid": myNid};
            [manager POST:urlString parameters:parameters success:^(AFHTTPRequestOperation *operation, id responseObject) {
                //Условия после запроса 2
                if ([operation.responseString rangeOfString:@"NeverLands: Земли, которых нет... - бесплатная браузерная онлайн игра в стиле фэнтези"].location == NSNotFound) {
                    NSLog(@"Неверный флеш пароль");
                } else {
                    mainWindowController = [[MainWindowController alloc] initWithWindowNibName:@"MainWindow"];
                    [mainWindowController showWindow:self];
                    [mainWindowController addWebView:[NSURL URLWithString:urlString]];
                    NSLog(@"Авторизация произведена");
                }
            } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                NSLog(@"Error: %@", error);
            }];
        }
    } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
        NSLog(@"Error: %@", error);
    }];
在这里写什么可以打开当前会话

  mainWindowController = [[MainWindowController alloc] initWithWindowNibName:@"MainWindow"];
                [mainWindowController showWindow:self];
                [mainWindowController addWebView:[NSURL URLWithString:HERE]];

我尝试了[mainWindowController addWebView:[NSURL URLWithString:urlString]];但是打开一个新会话的页面,并写入用户名和密码未输入。

看起来您是在使用相同的正文发出相同的post请求,但在响应中查找两个不同的内容

您应该只对响应的主体进行两次检查

NSString *importantStuff1 = @"NeverLands: Земли, которых нет... - Второй пароль";
NSString *importantStuff2 = @"NeverLands: Земли, которых нет... - бесплатная браузерная онлайн игра в стиле фэнтези";
if (([operation.responseString rangeOfString:importantStuff1].location == NSNotFound) &&
([operation.responseString rangeOfString:importantStuff2].location == NSNotFound))
{
  NSLog(@"Couldn't find the important stuff needed");
}
else
{
    mainWindowController = [[MainWindowController alloc] initWithWindowNibName:@"MainWindow"];
    [mainWindowController showWindow:self];
    [mainWindowController addWebView:[NSURL URLWithString:urlString]];
    NSLog(@"Авторизация произведена");
}

请原谅变量名,我不知道这些词是什么,哈哈

这个网站有两步认证。1.登录2。如果用户名和密码正确,则页面将加载flash元素以输入第二个密码,然后发送两个请求,两个请求都成功,在第一次授权后,通过Charles Web Proxy it头查看梦幻庄园网站的信息:ª¥ª¥ª¥ª¥ª¥ª¥ª¥ª¥ª¥ª¥ª¥ª¥ª¥ª¥ª第二个梦幻岛之后:第三个梦幻岛,第三个梦幻岛…-бббббббббббббббббббббббббббббб;那么,您当前的实现是否有错误?或者它只是没有像调用showWindow时所期望的那样显示窗口?我需要在第二个请求成功打开MainWindowController MainWindow.xib之后显示。这是我创建的一个web浏览器,在登录后页面加载站点。请注意第二个请求charles web proxy的响应,我看到:梦幻岛:梦幻岛,梦幻岛…-视景框;我如何理解需要运行此js以进入站点