簡體   English   中英

在NSHTTPCookieStorage中設置cookie

[英]Setting cookie in NSHTTPCookieStorage

我正在嘗試從NSHTTPCookieStorage中獲取一個cookie,並將其用於我的App中的另一個URL。 我正在從NSHTTPCookieStorage復制cookie,然后使用復制的cookie在NSHTTPCookieStorage中為其他URL設置cookie。 我正在嘗試遵循以下代碼,但是當我打印出其他URL的cookie時,卻沒有。

    // authCookie is a cookie already in NSHTTPCookieStorage.
    NSURL *searchURL = [NSURL URLWithString:searchURLString];
    NSDictionary *authCookieProperties = [[[authCookie properties] copy] autorelease];
    NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionaryWithDictionary:authCookieProperties];

    [cookieProperties setObject:searchURL forKey:NSHTTPCookieDomain];
    [cookieProperties setObject:searchURL forKey:NSHTTPCookieOriginURL];
    NSHTTPCookie *searchCookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
    [sharedHTTPCookieStorage setCookie:searchCookie];
    [sharedHTTPCookieStorage setCookies:[NSArray arrayWithObject:searchCookie] 
                                 forURL:searchURL 
                        mainDocumentURL:nil];

    NSLog(@"Cookies for search = %@", [sharedHTTPCookieStorage cookiesForURL:searchURL]);
    NSLog(@"All Cookies = ");
    NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for (NSHTTPCookie *cookie in [cookieJar cookies]) {
        NSLog(@"%@", cookie);
    }
    /*
    Console Output (With URL and cookie values hidden):
    Cookies for search = ()
    All Cookies = 
    <NSHTTPCookie version:0 name:"auth_token" value:"COOKIEVALUE" expiresDate:(null) created:2001-01-01 00:00:01 +0000 (1) sessionOnly:TRUE domain:"<search_url>" path:"/" isSecure:FALSE>
    <NSHTTPCookie version:0 name:"auth_token" value:"COOKIEVALUE" expiresDate:(null) created:2012-05-14 17:59:36 +0000 (3.58711e+08) sessionOnly:TRUE domain:"<URL_of_auth_cookie>" path:"/" isSecure:FALSE>
    */

如果您在新Cookie中提供的值足夠好,則必須保留選項卡,因為根據Apple參考,如果初始化值以任何特定方式無效,則應該返回nil。 您可以在此鏈接上進一步檢查。 它有一種從頭開始創建cookie的不錯的方法!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM