[問題] 用webview 登入 cookies問題

看板MacDev作者 (可樂果)時間11年前 (2013/10/31 17:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/1
搞了好久沒有什麼頭緒 來跟大大求救@@ 用了一個TabBarController A tabbar要使用一個webview load一個login的網頁 所以要在網頁上做帳號登入的動作 B tabbar裡要call一個user資料的api 但是要先判定user是否已經登入,登入狀態確定後call api才會回傳資料 登入的狀態由後台確認,所以我儲存要a tabbar中登入後的cookie, 開啟b tabbar後,將此cookie設為HTTPHeader用GET跟後台要回傳資料 後台判定此cookie後回傳資料 請問要如何抓取登入後產生的cookie 目前我是在a tabbar中sub一個uiwebview,開啟登入網頁 -(void)viewDidAppear:(BOOL)animated{ NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage]; for (NSHTTPCookie *cookie in [cookieJar cookies]) { NSLog(@"cookie is%@", cookie); } } 可以看到所有的cookies,直接讓app幫我存,但是我不知道怎麼看登入後的cookie 只能重新點回此a tab看cookie b tab中 NSURLRequest *req = [NSURLRequest requestWithURL:myurl]; NSArray *cookiesForDomain = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:myurl]; NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies: cookiesForDomain]; [req setAllHTTPHeaderFields:headers]; [req setHTTPMethod:@"GET"]; NSError *requestError; NSURLResponse *urlResponse = nil; NSData *response1 = [NSURLConnection sendSynchronousRequest:req returningResponse:&urlResponse error:&requestError]; NSString* responseString = [[NSString alloc] initWithData: response1 encoding: NSUTF8StringEncoding] ; 直接在a tab中登入後,直接開啟b tab可以直接抓到回傳資料 但是從多工關掉app重新開啟,直接進入b tab 就無法抓到資料, 表示後台並無認證此cookie,請問要怎麼正確使用get時set header 也用過 NSArray *cookiesForDomain = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:myurl]; for (NSHTTPCookie *cookie in cookiesForDomain) { NSString *cookieString = [NSString stringWithFormat:@"%@=%@", [cookie name], [cookie value]]; [req setValue:cookieString forHTTPHeaderField:@"Cookie"]; } [req setHTTPMethod:@"GET"]; 這樣雖然重新開啟app還是可以log到cookie,但是一樣無法抓取回傳資料 連在a tab中先登入再開啟b tab 也沒有資料回傳 打的有點多@@ 麻煩大大們幫忙 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.32.162.165
文章代碼(AID): #1ISXnPcy (MacDev)
文章代碼(AID): #1ISXnPcy (MacDev)