2

我正在开发一个从社区网站下载网页并解析结果的objective-c 项目。下载代码如下所示:

NSError* error = nil;
    NSString* text = [NSString stringWithContentsOfURL:fileUrl encoding:NSASCIIStringEncoding error:&error];
    if(text) {
        return text;
    }
    else {
        NSLog(@"Error = %@", error);
        return nil;
    }

奇怪的是,当我从该站点下载时,我看到的结果内容只有在登录该站点时才能看到(在我的浏览器中,我就是这样)。

该方法 (NSString stringWithContentsOfURL:encoding:error) 在执行请求时是否使用浏览器 cookie?如果是这样,它是专门集成的 Safari 吗?默认浏览器?我似乎找不到描述我所看到的行为的文档。我对这种行为没有意见(事实上,它更可取),但如果我完全理解发生了什么,我只想依赖它。

谢谢你的时间。

4

1 回答 1

1

Cookie 会自动处理并存储在应用程序的NSHTTPCookieStorage共享实例中。调用该cookies方法并检查您的 cookie 是否存在。如果是,那么这证实了你的怀疑。

编辑:我高度怀疑你UIWebView在你的应用程序中使用 a 并从那里登录。在这种情况下,是的,cookie 存储在您的应用程序的NSHTTPCookieStorage共享实例中,并将用于进一步的 URL 请求。

于 2013-03-17T20:51:33.410 回答