iOS AFNetworking进行网络请求时带上登陆成功后台返回的cookie
来源:互联网 发布:成都市行知小学怎么样 编辑:程序博客网 时间:2024/05/17 04:08
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:[NSURLURLWithString:@"请求地址] ];
NSData *UserData = [NSKeyedArchiver archivedDataWithRootObject:cookies] ;
[[NSUserDefaults standardUserDefaults] setObject:UserData forKey:@"kUserDefaultsCookie"] ;
第二步,在需要自动登陆时获取cookie值,ios的网络请求函数会请这个cookie值自动加入请求url
NSData *cookieData = [[NSUserDefaults standardUserDefaults] objectForKey:@"kUserDefaultsCookie"] ;
if ([cookieData length]) {
NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookieData] ;
NSHTTPCookie *cookie ;
for (cookie in cookies) {
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie] ;
}
manager.requestSerializer.HTTPShouldHandleCookies= YES;
manager.responseSerializer = [AFJSONResponseSerializerserializer];
[manager.requestSerializersetValue: [[NSUserDefaultsstandardUserDefaults]objectForKey:@"cooKie"]forHTTPHeaderField:@"Cookie"];
manager.responseSerializer.acceptableContentTypes= [NSSetsetWithObjects:@"text/html",@"application/json",nil];
NSLog(@"=====++++++%@", [[NSUserDefaultsstandardUserDefaults]objectForKey:@"cooKie"]);
NSDictionary* dataDic = [SigngetData:parameter];
NSMutableDictionary*dic = [NSMutableDictionarydictionaryWithDictionary:dataDic];
NSString* signString = [SigngetSign:parameter];
[dic setValue:signStringforKeyPath:@"sign"];
[dic setValue:@"ios"forKeyPath:@"partner"];
NSString*urlString = [NSStringstringWithFormat:RequestTheAddress, url];
[manager POST:[urlStringstringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSetURLQueryAllowedCharacterSet]]parameters:dicsuccess:^(AFHTTPRequestOperation*operation, id responseObject) {
NSDictionary*fields= [operation.responseallHeaderFields];
NSArray*cookies=[NSHTTPCookiecookiesWithResponseHeaderFields:fieldsforURL:[NSURLURLWithString:[urlStringstringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSetURLQueryAllowedCharacterSet]]]];
NSDictionary* requestFields=[NSHTTPCookierequestHeaderFieldsWithCookies:cookies];
NSLog(@"%@", requestFields);
if ([url isEqualToString:@"m=api&c=user&a=login"]) {
if(requestFields.allKeys.count!= 0) {
[[NSUserDefaultsstandardUserDefaults]setObject:[requestFieldsobjectForKey:@"Cookie"]forKey:@"cooKie"];
}
}
NSLog(@"=====%@", [[NSUserDefaultsstandardUserDefaults]objectForKey:@"cooKie"]);
network(responseObject);
} failure:^(AFHTTPRequestOperation*operation, NSError *error) {
NSLog(@"error = %@", operation.responseString);
- iOS AFNetworking进行网络请求时带上登陆成功后台返回的cookie
- js fetch函数请求数据时带上cookie以解决请求数据时server端返回"请登录"的状态
- 查看AFnetworking网络请求时服务器返回的头部信息
- ios AFNetworking网络请求
- iOS 带cookie进行网络请求
- iOS 带cookie进行网络请求
- iOS AFNetworking封装的网络请求
- iOS AFNetworking 取消网络请求
- iOS开发 - AFNetworking网络请求
- iOS开发 - AFNetworking网络请求
- iOS中网络请求--AFNetworking
- OC - 使用AFNetworking 3.0库进行网络请求时,取消单个队列和全部队列的方法(取消网络请求)
- iOS 网络请求(AFNetworking)失败的错误码分析
- iOS开发之网络请求(基于AFNetworking的再封装)
- AFNetworking框架IOS网络数据请求由浅入深的使用方法
- iOS开发之网络请求(基于AFNetworking的再封装)
- iOS 网络请求(AFNetworking)失败的错误码分析
- Ajax跨域请求COOKIE无法带上的解决办法
- cocos-js笔记
- 如何解决Sublime Text 3不能正确显示中文的问题
- Spinner(列表选择框)的使用
- html5中canvas绘制线段
- ovs-vsctl设置ofport不成功处理
- iOS AFNetworking进行网络请求时带上登陆成功后台返回的cookie
- 自定义延时函数可防止被编译器优化
- 已知有两个链表,判断它们是否相交,若相交求其第一个公共节点
- JavaScript--全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)
- OPENCV入门教程二:opencv 2.4.13+VS2015开发环境配置
- Spring多数据源使用注解事务绑定注意事项和解决办法
- Greenplum利用gpload,gpfist实现数据入库
- 什么?创业者别光想着做CEO,他首先应该是一名出色的销售(一)
- LintCode笔记(7)——统计数字