Создать cookie для NSURLRequest?

Проблема с вашим кодом заключается в том, что вы разбиваете каждую строку, которую вы прочитали, с помощью line_api = line.split(',')[2], а [2] ссылается на третий элемент, который существует в этом списке, который является xxxxxxxxx или yyyyyyyyy, затем, когда вы позвоните self.api = res[0], вы ссылаетесь на первый (и единственный) элемент в этом списке.

self.api = res[1] всегда будет выдавать ошибку, потому что она никогда не будет существовать в списке из 1 элемента. Я не уверен, какова была цель этого утверждения, но я бы предложил использовать элегантное решение DirtyBit

23
задан Michael Grinich 27 March 2009 в 23:01
поделиться

3 ответа

Это - то, как Вы устанавливаете свойства в cookie:

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

В примере выше: url, testCookies, и 1 значения. Аналогично, NSHTTPCookieOriginURL, NSHTTPCookieName, NSHTTPCookieValue ключи для NSDictionary объект, как в парах "ключ-значение".

Вы устанавливали/получали использование свойств NSDictionary и добавьте к NSHTTPCookie.

19
ответ дан 29 November 2019 в 00:57
поделиться

Я заметил, на мой iPhone 2.2.1, что cookie не создавался, если NSHTTPCookiePath не указан, хотя в документации он показан как «необязательный»:

Итак, я делаю:

NSDictionary *properties = [NSDictionary dictionaryWithObjectsAndKeys:
                            @"domain.com", NSHTTPCookieDomain,
                            @"/", NSHTTPCookiePath,  // IMPORTANT!
                            @"testCookies", NSHTTPCookieName,
                            @"1", NSHTTPCookieValue,
                            nil];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:properties];

NSArray* cookies = [NSArray arrayWithObjects: cookie, nil];

NSDictionary * headers = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies];

[request setAllHTTPHeaderFields:headers];
38
ответ дан 29 November 2019 в 00:57
поделиться

Я не мог заставить это работать.

Однако у меня это заработало:

NSMutableURLRequest* ret = [NSMutableURLRequest requestWithURL:myURL];
[ret setValue:@"myCookie=foobar" forHTTPHeaderField:@"Cookie"];
7
ответ дан 29 November 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: