使用保存的用户名和密码以编程方式login网站

我正在制作的应用程序的function之一涉及到将用户login到我们的校园门户网站。 为了便于使用,用户可以在应用程序中input用户名和密码一次,并将其保存以供将来的所有login。 当用户点击一个button时,会自动发送信息login,网站将显示在UIWebView

让我们说,用户名和密码都存储在一个NSString 。 我如何使用这些数据以编程方式login到这个网站,并将其显示在UIWebView

我对发帖和表格几乎一无所知,所以任何帮助表示赞赏。

会像这个 Stackoverflow的答案帮助吗?

这是我的代码的shell

 - (IBAction)btnGo:(id)sender { username = usernameField.text; password = passwordField.text; if (saveSwitch.isOn) { //Save data if the user wants AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; usernameSaved = username; passwordSaved = password; [appDelegate.listOfPortalCredentials replaceObjectAtIndex:0 withObject:usernameSaved]; [appDelegate.listOfPortalCredentials replaceObjectAtIndex:1 withObject:passwordSaved]; } //Insert username and password to web form, log in to portal //This is where I need help } 

编辑:

感谢Karthik,我能够使用FirebugfindHTTP Post。 它给了我:

 appName=ridgefield&portalUrl=portal%2Fridgefield.jsp%3F%26rID%3D0.18423783694092&username=<username>&password=<password>&B1=Log+In&url=portal%2Fmain.xsl%3FrID%3D0.6845596700302482&lang=en 

在哪里和代表真正的用户名和密码。 我相信这是我所需要的。 使用这个,我怎样才能显示在UIWebViewlogin页面? 我只需要在UIWebView加载上面的URL?

使用UIWebView,并使用用户名和密码进行https POST到https://ic.ridgefield.org/campus/verify.jsp

要了解它是如何工作的,请在Firefox浏览器上安装Firebug,并转到萤火虫上的“Net”选项卡,然后打开您的网站并input一些用户名/密码。

你应该使用代码来模仿这个动作。 (我总是从服务器得到无效的用户名或密码响应,因为我没有一个帐户,我尝试了一些随机的,因为没有注册的网站,我没有办法validation这一点)

 UIWebView* webView = [[UIWebView alloc] initWithFrame:self.view.frame]; [self.view addSubview:webView]; NSString* username = @""; NSString* password = @""; NSURL* url = [NSURL URLWithString:@"https://ic.ridgefield.org/campus/verify.jsp"]; NSString* body = [NSString stringWithFormat:@"appName=ridgefield&username=%@&password=%@", username, password]; NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:30]; request.HTTPMethod = @"POST"; request.HTTPBody = [body dataUsingEncoding:NSStringEncodingConversionAllowLossy]; [webView loadRequest:request];