对于Cookie 属性设置如下,因当时开发此功能时需要连接到外部来自香港PC网页,需要转换语言,所以顺便产考和对比了PC的转换Cookie转换设置见下图
/*!
@const NSHTTPCookieName
@discussion Key for cookie name
*/
FOUNDATION_EXPORT NSString * const NSHTTPCookieName;
/*!
@const NSHTTPCookieValue
@discussion Key for cookie value
*/
FOUNDATION_EXPORT NSString * const NSHTTPCookieValue;
/*!
@const NSHTTPCookieOriginURL
@discussion Key for cookie origin URL
*/
FOUNDATION_EXPORT NSString * const NSHTTPCookieOriginURL;
/*!
@const NSHTTPCookieVersion
@discussion Key for cookie version
*/
FOUNDATION_EXPORT NSString * const NSHTTPCookieVersion;
/*!
@const NSHTTPCookieDomain
@discussion Key for cookie domain
*/
FOUNDATION_EXPORT NSString * const NSHTTPCookieDomain;
/*!
@const NSHTTPCookiePath
@discussion Key for cookie path
*/
FOUNDATION_EXPORT NSString * const NSHTTPCookiePath;
-(void)requestData:(NSString*)urlString{
NSURL *url = [NSURL URLWithString:@"http://xxx.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
[cookieProperties setObject:@"指定的名称,相当于key" forKey:NSHTTPCookieName];
[cookieProperties setObject:@"指定的值,相当于value" forKey:NSHTTPCookieValue];
[cookieProperties setObject:@".xxx.com(对应上面的URL,前面的“.”号别忘了)" forKey:NSHTTPCookieDomain];
[cookieProperties setObject:@"可以不设置,去掉此行代码" forKey:NSHTTPCookieOriginURL];
[cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
[cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
[self.myWebView loadRequest:request];
}
//第二次请求会自动带上cookie
- (IBAction)test2:(id)sender {
NSURL *url = [NSURL URLWithString:@"http://xxx.com"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[self.mywebview2 loadRequest:request];
}
可以打印查看
NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [cookieJar cookies]) {
NSLog(@"%@", cookie.properties);
}