[問題] 用webview 登入 cookies問題
搞了好久沒有什麼頭緒 來跟大大求救@@
用了一個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
MacDev 近期熱門文章
PTT數位生活區 即時熱門文章