1 Reply
      Latest reply: Sep 8, 2016 7:50 AM by eskimo RSS
      tej13 Level 1 Level 1 (0 points)

        Below is my code snippet:

        /*cookie attached in request part*/
        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:httpsURL cachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:5.0f];
        [request setValue:@"cookie1=value1"  forHTTPHeaderField:@"Cookie"];
        
        /*cookie attached using NSHTTPCookie*/
        NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
        [cookieProperties setObject:@"cookie2" forKey:NSHTTPCookieName];
        [cookieProperties setObject:@"value2" forKey:NSHTTPCookieValue];
        [cookieProperties setObject:[request URL].absoluteString forKey:NSHTTPCookieOriginURL];
        [cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
        NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
        NSArray *arr = [NSArray arrayWithObjects:cookie, nil];
        [request setAllHTTPHeaderFields:headers];
        

        Question:

        Now using the above configuration does my connection consider both the cookies during the request?

        • Re: Does a URL connection in iphone respect the cookies from both NSHTTPCookieStorage and cookies from header field "Cookie"?
          eskimo Apple Staff Apple Staff (7,960 points)

          Your question doesn’t seem to gel with your post’s subject.  In your post’s subject you mention NSHTTPCookieStorage but you never put a cookie into NSHTTPCookieStorage in the code example you show.

          To answer the question from your post’s subject, the session’s cookie store (NSHTTPCookieStorage) is only consulted if you leave out the Cookie header in request.  If you want to get this sort of merging behaviour, you can fetch the cookies from the cookie store then merge in your cookies.

          Share and Enjoy

          Quinn “The Eskimo!”
          Apple Developer Relations, Developer Technical Support, Core OS/Hardware
          let myEmail = "eskimo" + "1" + "@apple.com"