У меня есть приложение, которое использует webView. На главном экране веб-сайта я хочу войти в систему, используя имя пользователя и пароль, введенные пользователем в настройках параметров приложения. В настоящее время у меня есть этот код, который я видел в решении аналогичного вопроса, заданного на этом форуме. Но он не работает (и не для другого).Вход с настройками имени пользователя и пароля
-(IBAction)cachepressed:(id)sender{
NSString *baseurl=[[NSUserDefaults standardUserDefaults] stringForKey:@"url_preference"];
NSString *username= [[NSUserDefaults standardUserDefaults] stringForKey:@"name_preference"];
NSString *password= [[NSUserDefaults standardUserDefaults] stringForKey:@"pswrd_preference"];
NSString* content = [NSString stringWithFormat:@"username=%@&password=%@", username, password];
NSData *data=[content dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postlength=[NSString stringWithFormat:@"%d",[data length]];
NSString *loginpage= [baseurl stringByAppendingString:@"/index.php?title=Special:UserLogin"];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:loginpage]];
[request setHTTPMethod:@"POST"];
[request setValue:postlength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Length"];
[request setHTTPBody:data];
NSError *error=nil;
NSURLResponse *response=nil;
NSData *result=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
NSString *HTMLString = [[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding];
[webView loadHTMLString:HTMLString baseURL:[NSURL URLWithString:loginpage]];
}
Я не слишком уверен в двух строках кода, начиная с [request setValue ...]. Может ли кто-нибудь предложить решение? Это было бы большой помощью. Спасибо в ожидании.
Спасибо, что ответили. Я исправил имена полей, как вы указали правильно. Но я не знаю о двух других моментах. Есть ли способ узнать? – gamersoul
Ну, номер 2 маловероятен, большинство веб-сайтов разрешают внешние POST-запросы. С номером 3 я думаю, что самый простой способ проверить - это посмотреть на исходный код веб-сайта в браузере. Ссылка на сайт будет полезна – BBog