2013-06-04 19 views
1

我想問一些我想要做的事情,而沒有任何以前與ios或objective-c的聯繫。 這段代碼將:來自ios webview的cookie

  1. 打開與特定的URL,其中用戶將登錄 (完成)
  2. 在它的用戶登錄後,將採取該cookie一個web視圖從該登錄創建 。
  3. 它將在下次請求中使用該cookie,以便 加載需要驗證的另一個站點。

我在第2部分卡住了,因爲它必須等待另一個線程,直到用戶進行登錄(如何?)和b),因爲我似乎無法獲得特定的cookie該網站很容易。我只找到並嘗試過這個poc,但是如何僅過濾出我想要的網站的Cookie?

NSHTTPCookie *cookie; 
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
for(cookie in [cookieJar cookies]) { 
    NSLog(@"%@", cookie); 
} 

有關如何製作2a/b部件的任何想法? Objective-c語法似乎有點混亂。

回答

1

Cookies是創建如下,

NSDictionary *properties = [NSDictionary dictionaryWithObjectsAndKeys: 
          url, NSHTTPCookieOriginURL, 
          @"testCookies", NSHTTPCookieName, 
          @"1", NSHTTPCookieValue, 
          nil]; 


NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:properties]; 

可以使用cookie對象來獲取源URL屬性和過濾器。

NSDictionary *cookieProperties = [cookie properties]; 
NSURL *originURL = [cookieProperties objectForKey:NSHTTPCookieOriginURL]; 

過濾你需要,你可以使用得到的cookie值的餅乾後,

cookie.value 
+1

但我知道原始網址。我只想要在該網址中登錄後創建的cookie的數據。它基本上是一個會話ID。 – cyph3r

+0

好的,更新了答案。 NSHttpCookie類有很多屬性。你可能想看看參考文獻 – Vignesh

+0

你可以做到這一點。但我更願意在用戶登錄後啓動線程。您可以發佈通知或使用委託機制通知事件。 – Vignesh