Я устанавливаю (или попытки установить) в NSHTTPCookie следующим образом:Почему, установив NSHTTPCookie, он не добавлен в NSURLRequest?
+ (void)setCookie {
NSString* cookieName = @"MyCookieName";
NSString* cookieValue = @"MyCookieValue";
NSString* cookieOriginURL = @"www.mycompany.com";
NSString* cookiePath = @"/";
NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:cookieName forKey:NSHTTPCookieName];
[cookieProperties setObject:cookieValue forKey:NSHTTPCookieValue];
[cookieProperties setObject:cookieOriginURL forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:cookiePath forKey:NSHTTPCookiePath];
[cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:3600] forKey:NSHTTPCookieExpires];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
}
После этого вызывается метод, я создать NSURLRequest:
NSString *urlAddress = @"http//:www.mycompany.com/mobile/home";
//Create a URL object.
NSURL *url = [NSURL URLWithString:urlAddress];
//URL Request Object
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url];
NSLog(@"Here's the request: %@", [requestObj description]);
//Load the request in the UIWebView.
[self.webView loadRequest:requestObj];
Но выход:
Here's the request: <NSURLRequest: 0xa33a4d0> { URL: http:www.mycompany.com/mobile/home
Я ожидал увидеть информацию о файле cookie, добавленную к запросу, но это не так.
Я мало знаю о файлах cookie, поэтому я не знаю, что-то у меня в коде отсутствует, или если я просто пропустил интерпретацию того, что означает выход.
Спасибо за любую помощь.
Вы были верны, что в описании NSURLRequest не было информации, которую я ожидал. Это привело меня к моей реальной проблеме. Мой NSHTTPCookieOriginURL и фактический URL-адрес не совпадают. Мне просто пришлось добавить «http: //» в NSHTTPCookieOriginURL. Это сделал трюк. И ваше предложение помогло мне проверить это. Благодарю. – Hap
Рад слышать, что проблема решена. Я не знал, что «http: //» «требуется, чтобы файл cookie соответствовал URL-адресу; Я думал, что только домен должен быть совпадением. Я изучу это немного! – Guven
Кроме того, я уверен, что вы сами это обнаружили, вы можете перебирать все файлы cookie, а не те, которые соответствуют URL-адресу. Для этого просто измените '[cookieJar cookiesForURL: url]' на '[cookieJar cookies]'. – Guven