您的位置:首页 > 理论基础 > 计算机网络

NSHTTPCookieStorage NSURLRequest 设置Cookie

2015-12-24 15:45 441 查看
对于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);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: