NSString的stringWithContentsOfURL使用浏览器cookie?

时间:2013-03-17 17:53:56

标签: objective-c cocoa cookies nsstring

我正在开发一个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是否与其集成?默认浏览器?我似乎无法找到描述我所看到的行为的文档。我对这种行为感到满意(事实上,它更可取),但如果我完全理解这种情况,我只想依赖它。

感谢您的时间。

1 个答案:

答案 0 :(得分:1)

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

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