3

첫 번째로, 앱이 내 웹 사이트의 로그인 페이지로 UIWebView를 열면 성공적으로 로그인하면 웹보기가 닫힙니다. 아주 작은 json 데이터를 반환하는 요청해야하는 URL이 있습니다. webview로이 url을 시작하면 올바른 데이터가 반환되므로 로그인 세션이 아직 살아 있다고 가정하면 다시 로그인 페이지로 리디렉션됩니다.쿠키가 NSMutableURLRequest와 함께 전송되지 않습니다.

webview 대신, 다른 뷰에서 반환 된 데이터가 필요하므로 대신 NSURLRequest를 사용하여 액세스해야합니다.

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 데이터의 로그인 페이지 소스로 구성되어 반환 된 데이터를, 검사에, 나는 쿠키가 전송되지 않은 것으로 결론을 내릴 수있다 : 저녁에 대한 유래를 크롤링 한 후, 다음은 내가 가진 무엇 , 조언이 필요합니다.

EDIT : [allHTTPHeaderField 요청] 출력을 수행했으며 NSHTTPCookieStorage 내의 모든 사용 가능한 쿠키가 요청에 첨부되었음을 나타냅니다. 그래서 ... 내가 어떻게해야 하는지를 정말로 잃어 버렸다.

답변

1

쿠키를 명시 적으로 설정할 필요가 없습니다. NSURLConnection은 자동으로이 작업을 수행합니다.

웹 뷰를 닫은 후에 쿠키를 인쇄 해 보셨습니까?

[[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies] enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 

    NSLog(@"%@", obj); 
    }]; 
관련 문제