版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u012581760/article/details/83659305
UIWebView中request请求添加cookie
- (void)viewDidLoad {
[super viewDidLoad];
NSString *URL = @"http://okcs.dev.cnki.net/KRD/Mobile/Redirect/Detail?Id=097556d3-d046-48c1-9fd4-65fcac7e1ea1&sourcetype=PERSONALBLOG";
NSString *URL1 = @"http://okcs.dev.cnki.net/KRD/Mobile/Redirect/Detail?Id=1476B3F3551A4DA49B16E5450F72227C&sourcetype=SHIPIN";
// URL = @"https://www.baidu.com";
self.view.backgroundColor = [UIColor whiteColor];
[self reloadWebView:URL1];
[self.view addSubview:self.myWebView];
}
- (void)reloadWebView:(NSString *)url
{
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:@"LID" forKey:NSHTTPCookieName];
[dict setObject:[LoginModel defalustLoginModel].Access_token forKey:NSHTTPCookieValue];
[dict setObject:@"192.168.105.26" forKey:NSHTTPCookieDomain];
[dict setObject:@"/" forKey:NSHTTPCookiePath];
NSHTTPCookie *cookie2 = [NSHTTPCookie cookieWithProperties:dict];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie2];
NSDictionary *dictionnary = [[NSDictionary alloc] initWithObjectsAndKeys:@"okms.ios", @"UserAgent", nil];
[[NSUserDefaults standardUserDefaults] registerDefaults:dictionnary];
NSMutableDictionary *cookieDic = [NSMutableDictionary dictionary];
NSMutableString *cookieValue = [NSMutableString stringWithFormat:@""];
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [cookieStorage cookies]) {
[cookieDic setObject:cookie.value forKey:cookie.name];
}
for (NSString *key in cookieDic) {// cookie重复,先放到字典进行去重,再进行拼接
NSString *appendString = [NSString stringWithFormat:@"%@=%@;", key, [cookieDic valueForKey:key]];
[cookieValue appendString:appendString];
}
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]];
[request addValue:cookieValue forHTTPHeaderField:@"Cookie"];
[self.myWebView loadRequest:request];
}
AFN中request请求添加cookie的方法
// 设置cookie
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setObject:@"AID" forKey:NSHTTPCookieName];
[dict setObject:@"111" forKey:NSHTTPCookieValue];
[dict setObject:@".dev.cnki.net" forKey:NSHTTPCookieDomain];
[dict setObject:@"/" forKey:NSHTTPCookiePath];
NSHTTPCookie *cookie = [NSHTTPCookie cookieWithProperties:dict];
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
NSMutableDictionary *cookieDic = [NSMutableDictionary dictionary];
NSMutableString *cookieValue = [NSMutableString stringWithFormat:@""];
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [cookieStorage cookies]) {
[cookieDic setObject:cookie.value forKey:cookie.name];
// 注意此处,如果没有添加下面两句,那么就看不到请求cookie中有domain和path
[cookieDic setObject:cookie.domain forKey:NSHTTPCookieDomain];
[cookieDic setObject:cookie.path forKey:NSHTTPCookiePath];
// 还可以设置过期时间和版本号
// [cookieDic setObject:[NSNumber numberWithInt:cookie.version] forKey:NSHTTPCookieVersion];
// [cookieDic setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];
}
for (NSString *key in cookieDic) {// cookie重复,先放到字典进行去重,再进行拼接
NSString *appendString = [NSString stringWithFormat:@"%@=%@;", key, [cookieDic valueForKey:key]];
[cookieValue appendString:appendString];
}
AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
manager.requestSerializer = [AFHTTPRequestSerializer serializer];
// 将拼写好的cookieValue放到请求头的Cookie中
[manager.requestSerializer setValue:cookieValue forHTTPHeaderField:@"Cookie"];