0

我写了一个 os x 应用程序,但我有一个问题。我的程序每次下载文件时都会登录该站点。它在登录时使用 safari cookie jar,因此在我的程序下载文件后,safari 在此站点上登录。我用于登录的代码是:

NSURL *loginUrl = [NSURL URLWithString:@"http://login.rutracker.org/forum/login.php"];
NSMutableURLRequest *loginRequest = [NSMutableURLRequest requestWithURL:loginUrl];
NSURLResponse *loginResponse;
NSError* loginError;
NSString *post = [NSString stringWithFormat:@"login_username=%@&login_password=%@&login=Вход", LoadPlist._username, LoadPlist._password];
NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
[loginRequest setValue:[NSString stringWithFormat:@"%ld",[postData length]] forHTTPHeaderField:@"Content-Length"];
[loginRequest setTimeoutInterval:15];
[loginRequest setHTTPBody:postData];
[loginRequest setHTTPMethod:@"POST"];
[loginRequest setHTTPShouldHandleCookies:YES];
[NSURLConnection sendSynchronousRequest:loginRequest returningResponse:&loginResponse error:&loginError];

问题是这个站点一次只允许一个cookie。因此,如果我先登录 Firefox,然后再登录 Safari,在 Firefox 中我就会退出。

因此,使用 Chrome 或 Firefox 作为默认浏览器的用户向我报告说,由于我的程序,他们已从该站点注销。

所以问题是“我可以在我的程序中使用 Firefox 或 Chrome cookie jars 而不是 Safari 吗?”

期待您的回复。

4

1 回答 1

0

好吧,您可以为您的请求设置一个自定义 cookie jar,并从 ff/chrome 应用程序支持文件夹中读取 cookie。您需要了解这些浏览器如何存储 cookie 并在您的代码中读取它们。

于 2013-05-30T13:30:57.443 回答