我对 Objective-c 编程还很陌生,而我对 PHP 的了解几乎一无所知。 无论如何,我正在尝试在我的应用程序中创建一个登录屏幕,其中有两个用于用户名和密码的文本字段,以及一个用于将用户名/密码输入网站登录页面并连接到帐户的按钮。 我不确定我是否走对了路,但这是我编写的代码示例:
-(IBAction)ButtonClicked:(id)sender
{
NSString *content = @"username=blabla&password=123456";
NSData *data=[content dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postlenght=[NSString stringWithFormat:@"%d",[data length]];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:@"http://roadster.co.il/forums/ucp.php?mode=login"]];
[request setHTTPMethod:@"POST"];
[request setValue:postlenght 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];
[webview loadRequest:request];
}
如您所见,我尝试登录的网站是 奥 git _a 很抱歉,该网站是希伯来语的,但这没关系。您能告诉我为什么我无法使用此代码登录吗? (尝试使用真实密码/用户名)
最佳答案
您正尝试两次发出请求。
NSError *error=nil;
NSURLResponse *response=nil;
NSData *result=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
[webview loadRequest:request];
+sendSynchronousRequest:returningResponse:error:
和 -loadRequest:
都将请求发送到服务器。你只想做其中之一。删除前三行代码,或使用 -loadHTMLString:baseURL:
将结果加载到 Web View 中。
NSString *HTMLString = [[[NSString alloc] initWithData:result encoding:NSUTF8StringEncoding] autorelease];
[webview loadHTMLString:HTMLString baseURL:[NSURL URLWithString:@"http://roadster.co.il/forums/ucp.php?mode=login"]];
关于objective-c - 如何使用 XCode 中的用户名/密码登录网站?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10400031/