从需要登录的网站获取HTML源(NSData)(iphone)

时间:2010-05-03 14:10:06

标签: iphone web login nsdata

NSData *data = [[NSData alloc] initWithContentsOfURL:url];

网址是一个NSURL,它运行正常。但是我想在登录后获取HTML(数据)。

因此,该网站有一种标准方式,即使用2个文本框和表单上的提交操作登录。

那么我如何登录然后获取HTMl源代码以便我可以解析它。我是否必须使用NSData以外的其他东西?

1 个答案:

答案 0 :(得分:1)

我认为您想通过带有NSURLConnection的POST提交表单。你必须调整它以匹配表单,但它应该像

    NSString *reqURL = [NSString stringWithFormat:@"%@/login",SERVER_URL];

    NSMutableURLRequest *req = [[NSMutableURLRequest alloc]initWithURL:[NSURL URLWithString:reqURL]];
    [req setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];


    NSData *myRequestData = [NSData dataWithBytes:[@"username=whatever&password=whatever" UTF8String] length: [@"username=whatever&password=whatever" length]];
    [req setHTTPMethod: @"POST"];
    [req setHTTPBody: myRequestData];
    NSData *returnData = [NSURLConnection sendSynchronousRequest:req returningResponse: nil error: nil];
    NSString *html = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];