objective-c - 如何使用 XCode 中的用户名/密码登录网站?

标签 objective-c cocoa authentication webview

我对 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/

相关文章:

objective-c - 将值数组放入 CLLocationCoordinate2D 的优雅方式

ios - 如何像 Shazam 一样从 AppleWatch 获取音频?

ios - UITableViewController 的圆角

iphone - iOS:将 URL 解析为段

c - 我如何实际使用授权服务?

objective-c - 无法在 applicationDidFinishLaunching 中设置 NSSlider 值

objective-c - 来自@synthesize 的方法?

authentication - 如何在 Openssl 中自定义 TLS 握手过程?

iphone - Facebook SSOw 登录和发布图像不起作用。

tomcat - Vaadin 和 Tomcat7 问题登录