首先,该应用程序会打开一个 UIWebView 到我网站上的登录页面,成功登录后,webview 将关闭。我需要请求一个 url,它会返回一个非常小的 json 数据。如果我要使用 webview 启动此 url,则会返回正确的数据,因此假设登录会话仍然存在(如果不是,它将再次重定向到登录页面)
我需要在另一个视图中返回的数据而不是 web 视图,因此我需要使用 NSURLRequest 来访问它。在爬了一个晚上的stackoverflow之后,以下是我所拥有的:
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:
[cookieJar cookies]];
[request setAllHTTPHeaderFields:headers];
NSError * e;
NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:&e];
在检查返回的数据(包括登录页面源而不是预期的 json 数据)后,我可以得出结论,cookie 没有发送,需要建议。
编辑:我做了 [request allHTTPHeaderField] 的输出,它显示 NSHTTPCookieStorage 中的所有可用 cookie 都已附加到请求中。所以......我真的迷失了我应该如何进行。