まず、アプリはUIWebViewを開いて私のWebサイトのログインページにアクセスします。ログインに成功すると、Webビューは閉じられます。非常に小さなjsonデータを返すURLをリクエストする必要があります。このURLをWebビューで起動すると、正しいデータが返されるため、ログインセッションがまだ有効であると想定されます(有効でない場合は、ログインページに再度リダイレクトされます)。
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がリクエストに添付されていることが示されました。だから...私がどのように進めるべきか本当に迷っています。