求教AFNetwork怎么jquery获取cookie值

主题 : 求教AFNetwork怎么获取cookie啊?
级别: 新手上路
可可豆: 35 CB
威望: 6 点
在线时间: 66(时)
发自: Web Page
求教AFNetwork怎么获取cookie啊? &&&
账号登录后所有的请求都要加入cookie,用的是AFNetworking,cookie在登录请求时会返回。请问如何获取到这个cookie
& &开始是参照网上给的方法,在我的post方法里用这个
&NSString *cookieString = [[operation.response allHeaderFields] valueForKey:@"Set-Cookie"];
但打印出来的结果少了一个参数????
级别: 新手上路
可可豆: 81 CB
威望: 31 点
在线时间: 79(时)
发自: Web Page
cookie在登录请求时会返回,在返回信息里获取啊
级别: 新手上路
UID: 191549
可可豆: 159 CB
威望: 45 点
在线时间: 45(时)
发自: Web Page
NSArray *cookies = [NSHTTPCookie cookiesWithResponseHeaderFields:[response allHeaderFields] forURL:yourNSURL];
级别: 新手上路
可可豆: 35 CB
威望: 6 点
在线时间: 66(时)
发自: Web Page
是在返回信息里获取的,但是总是少一两个参数,是方法不对吗?
级别: 新手上路
可可豆: 35 CB
威望: 6 点
在线时间: 66(时)
发自: Web Page
这个试过也素不行。。。快帮帮我呀
级别: 新手上路
可可豆: 25 CB
威望: 26 点
在线时间: 57(时)
发自: Web Page
我们的接口也是这样的接口,到底怎么用啊?能详细解释一下吗?
级别: 新手上路
可可豆: 11 CB
威望: 11 点
在线时间: 35(时)
发自: Web Page
- (void)requestFinished:(ASIHTTPRequest *)request
{
& & NSArray *cookies = [request responseCookies];
}
级别: 骑士
UID: 28451
可可豆: 3062 CB
威望: 1981 点
在线时间: 1650(时)
发自: Web Page
AFNetworking 是支持cookie的
在AFHTTPRequestSerializer中
/**
&Whether created requests should use the default cookie handling. `YES` by default.
&
&@see NSMutableURLRequest -setHTTPShouldHandleCookies:
&*/
@property (nonatomic, assign) BOOL HTTPShouldHandleC
不放心的话,
AFHTTPRequestOperationManager&*manager = [AFHTTPRequestOperationManager&manager];
manager.requestSerializer.HTTPShouldHandleCookies = YES;
级别: 新手上路
可可豆: 1 CB
威望: 1 点
在线时间: 1(时)
发自: Web Page
Re:求教AFNetwork怎么获取cookie啊?
请问楼主把问题解决了吧?我也遇到同样的问题。。。
级别: 骑士
可可豆: 1682 CB
威望: 1682 点
在线时间: 1356(时)
发自: Web Page
Re:求教AFNetwork怎么获取cookie啊?
在使用AFNetwork的时候比较获取和设置cookie&&&&比较省事的方案,写个类继承子AFHTTPClient重新实现一下 - (NSMutableURLRequest *)requestWithMethod:(NSString *)method&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&path:(NSString *)path&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&parameters:(NSDictionary *)parameters{&&&&NSParameterAssert(method);&&&&&&&&if (!path) {&&&&&&&&path = @&&;&&&&}&&&&&&&&NSMutableURLRequest *request = [super requestWithMethod:method&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& path:path&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& parameters:parameters];&&&&&&&&request.timeoutInterval = 30.0f;&&&&&&&&/**&&&& *&&///////////////////////////////////////////////&&&& */&&&& NSURL *dataUrl = [NSURL URLWithString:path relativeToURL:self.baseURL];&& NSData * data = [[NSUserDefaults standardUserDefaults] objectForKey:kUserDefaultsCookie];&&&&if (data.length) {&&&&&&&&NSArray *arcCookies = [NSKeyedUnarchiver unarchiveObjectWithData:data];&&&&&&&&NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];&&&&&&&&&&&&&&&&for (NSHTTPCookie *cookie in arcCookies){&&&&&&&&&&&&[cookieStorage setCookie: cookie];&&&&&&&&}&&&&&&&&&&&&&&&&NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL:dataUrl];&&&&&&&&for (NSHTTPCookie *cookie in cookies){&&&&&&&&&&&&[cookieStorage setCookie: cookie];&&&&&&&&&&&&&&&&&&&&}&&&&&&&&NSDictionary *sheaders = [NSHTTPCookie requestHeaderFieldsWithCookies:cookies];&&&&&&&&&&&&&&&&[request setAllHTTPHeaderFields:sheaders];&&&&}&&&&&&&&&&&&/**&&&& *&&///////////////////////////////////////////////&&&& */&&&&&&&&}在数据请求以后返回的代码块里,保存一下cookie- (void)saveCookie {&&&&NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];&&&&&&&&for (NSHTTPCookie *cookie in cookies){&&&&&&&&DebugLog(@&\n\n-------- %@&,cookie);&&&&}&&&&&&&&NSData *cookiesData = [NSKeyedArchiver archivedDataWithRootObject: cookies];&&&&if (nil == [[NSUserDefaults standardUserDefaults] objectForKey:kUserDefaultsCookie]) {&&&&&&&&[[NSUserDefaults standardUserDefaults] setObject:cookiesData forKey:kUserDefaultsCookie];&&&&&&&&[[NSUserDefaults standardUserDefaults] synchronize];&&&&}}
关注本帖(如果有新回复会站内信通知您)
苹果公司现任CEO是谁?2字 正确答案:库克
发帖、回帖都会得到可观的积分奖励。
按"Ctrl+Enter"直接提交
关注CocoaChina
关注微信 每日推荐
扫一扫 浏览移动版IOS-cookie
摘要 AFNetworking是支持cookies,只不过它把这个逻辑交给了iOS 底层的api处理了。 Cookies are handled entirely by the Foundation URL Loading system, upon which AFNetworking is built. You have complete control over the behavior of
cookies in requests by configuring NSMutableURLRequest (setHTTPShouldHandleCookies) and NSHTTPCoo...
&&&AFNetworking是支持cookies,只不过它把这个逻辑交给了iOS 底层的api处理了。
& &多话不说了,很讨厌网上那些人云亦云的帖子,三人成虎!
& 本次我们的项目重构,需要用到cookies,我直接给出解决方案吧:
(cookie使用支持的简单思路是:首次请求时,服务器取回cookies,然后每次请求时附加上cookie,如此反复即可,至于cookies中有啥内容,我们不用关注,服务器要就给她)
& 我使用的是AFNetworking的AFHTTPClient进行网络访问的,我就直接在AFHTTPClient.h添加两个支持cookies的方法,一个是为post写的,另一个是为get写的。
1、在AFHTTPClient.h添加两个支持cookies的方法,每次请求时,都发送出本地cookies
-&(void)blockGetPath:(NSString&*)path
&&&&&parameters:(NSDictionary&*)parameters
&&&&&&&&success:(void&(^)(AFHTTPRequestOperation&*operation,&id&responseObject))success
&&&&&&&&failure:(void&(^)(AFHTTPRequestOperation&*operation,&NSError&*error))
-&(void)blockPostPath:(NSString&*)path
&&&&&&parameters:(NSDictionary&*)parameters
&&&&&&&&&success:(void&(^)(AFHTTPRequestOperation&*operation,&id&responseObject))success
&&&&&&&&&failure:(void&(^)(AFHTTPRequestOperation&*operation,&NSError&*error))
& &其实现是:
-&(void)blockGetPath:(NSString&*)path
&&&&&&&&&&parameters:(NSDictionary&*)parameters
&&&&&&&&&&&&&success:(void&(^)(AFHTTPRequestOperation&*operation,&id&responseObject))success
&&&&&&&&&&&&&failure:(void&(^)(AFHTTPRequestOperation&*operation,&NSError&*error))failure
&&&&if&(!path)&{
&&&&&&&&path&=&@&&;
&&&&NSArray&*arcCookies&=&[NSKeyedUnarchiver&unarchiveObjectWithData:&[[NSUserDefaults&standardUserDefaults]&objectForKey:&@&sessionCookies&]];
&&&&NSHTTPCookieStorage&*cookieStorage&=&[NSHTTPCookieStorage&sharedHTTPCookieStorage];
&&&&for&(NSHTTPCookie&*cookie&in&arcCookies){
&&&&&&&&[cookieStorage&setCookie:&cookie];
&&&&NSURL&*dataUrl&=&[NSURL&URLWithString:path&relativeToURL:self.baseURL];
&&&&NSArray&*cookies&=&[[NSHTTPCookieStorage&sharedHTTPCookieStorage]&cookiesForURL:dataUrl];
&&&&NSDictionary&*sheaders&=&[NSHTTPCookie&requestHeaderFieldsWithCookies:cookies];
&&&&NSString&*charset&=&(NSString&*)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
&&&&__strong&NSMutableURLRequest&*request&=&[NSMutableURLRequest&requestWithURL:dataUrl&cachePolicy:NSURLRequestReloadIgnoringLocalCacheData&timeoutInterval:60.f];
&&&&[request&setHTTPMethod:@&GET&];
&&&&[request&addValue:@&iOS&&forHTTPHeaderField:@&User-Agent&];
&&&&[request&setValue:[NSString&stringWithFormat:@&application/x-www-form-&charset=%@&,&charset]&forHTTPHeaderField:@&Content-Type&];
&&&&[request&setAllHTTPHeaderFields:sheaders];
&&&&if&(parameters)&{
&&&&&&&&&&&&dataUrl&=&[NSURL&URLWithString:[[dataUrl&absoluteString]&stringByAppendingFormat:[path&rangeOfString:@&?&].location&==&NSNotFound&?&@&?%@&&:&@&&%@&,&AFQueryStringFromParametersWithEncoding(parameters,&self.stringEncoding)]];
&&&&&&&&&&&&[request&setURL:dataUrl];
&&&&AFHTTPRequestOperation&*operation&=&[self&HTTPRequestOperationWithRequest:request&success:success&failure:failure];
&&&&[self&enqueueHTTPRequestOperation:operation];
& post实现是:
-&(void)blockPostPath:(NSString&*)path
&&&&&&&&&&&parameters:(NSDictionary&*)parameters
&&&&&&&&&&&&&&success:(void&(^)(AFHTTPRequestOperation&*operation,&id&responseObject))success
&&&&&&&&&&&&&&failure:(void&(^)(AFHTTPRequestOperation&*operation,&NSError&*error))failure
&&&&if&(!path)&{
&&&&&&&&path&=&@&&;
&&&&NSArray&*arcCookies&=&[NSKeyedUnarchiver&unarchiveObjectWithData:&[[NSUserDefaults&standardUserDefaults]&objectForKey:&@&sessionCookies&]];
&&&&NSHTTPCookieStorage&*cookieStorage&=&[NSHTTPCookieStorage&sharedHTTPCookieStorage];
&&&&for&(NSHTTPCookie&*cookie&in&arcCookies){
&&&&&&&&[cookieStorage&setCookie:&cookie];
&&&&NSURL&*dataUrl&=&[NSURL&URLWithString:path&relativeToURL:self.baseURL];
&&&&NSArray&*cookies&=&[[NSHTTPCookieStorage&sharedHTTPCookieStorage]&cookiesForURL:dataUrl];
&&&&NSDictionary&*sheaders&=&[NSHTTPCookie&requestHeaderFieldsWithCookies:cookies];
&&&&NSString&*charset&=&(NSString&*)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(NSUTF8StringEncoding));
&&&&__strong&NSMutableURLRequest&*request&=&[NSMutableURLRequest&requestWithURL:dataUrl&cachePolicy:NSURLRequestReloadIgnoringLocalCacheData&timeoutInterval:60.f];
&&&&[request&setHTTPMethod:@&Post&];
&&&&[request&addValue:@&iOS&&forHTTPHeaderField:@&User-Agent&];
&&&&[request&setValue:[NSString&stringWithFormat:@&application/x-www-form-&charset=%@&,&charset]&forHTTPHeaderField:@&Content-Type&];
&&&&[request&setAllHTTPHeaderFields:sheaders];
&&&&if&(parameters)&{
&&&&&&&&NSString&*charset&=&(__bridge&NSString&*)CFStringConvertEncodingToIANACharSetName(CFStringConvertNSStringEncodingToEncoding(self.stringEncoding));
&&&&&&&&NSError&*error&=&
&&&&&&&&switch&(self.parameterEncoding)&{
&&&&&&&&&&&&case&AFFormURLParameterEncoding:;
&&&&&&&&&&&&&&&&[request&setValue:[NSString&stringWithFormat:@&application/x-www-form-&charset=%@&,&charset]&forHTTPHeaderField:@&Content-Type&];
&&&&&&&&&&&&&&&&[request&setHTTPBody:[AFQueryStringFromParametersWithEncoding(parameters,&self.stringEncoding)&dataUsingEncoding:self.stringEncoding]];
&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&case&AFJSONParameterEncoding:;
&&&&&&&&&&&&&&&&[request&setValue:[NSString&stringWithFormat:@&application/&charset=%@&,&charset]&forHTTPHeaderField:@&Content-Type&];
&&&&&&&&&&&&&&&&[request&setHTTPBody:[NSJSONSerialization&dataWithJSONObject:parameters&options:0&error:&error]];
&&&&&&&&&&&&&&&&break;
&&&&&&&&&&&&case&AFPropertyListParameterEncoding:;
&&&&&&&&&&&&&&&&[request&setValue:[NSString&stringWithFormat:@&application/x-&charset=%@&,&charset]&forHTTPHeaderField:@&Content-Type&];
&&&&&&&&&&&&&&&&[request&setHTTPBody:[NSPropertyListSerialization&dataWithPropertyList:parameters&format:NSPropertyListXMLFormat_v1_0&options:0&error:&error]];
&&&&&&&&&&&&&&&&break;
&&&&&&&&if&(error)&{
&&&&&&&&&&&&NSLog(@&%@&%@:&%@&,&[self&class],&NSStringFromSelector(_cmd),&error);
&&&&AFHTTPRequestOperation&*operation&=&[self&HTTPRequestOperationWithRequest:request&success:success&failure:failure];
&&&&[self&enqueueHTTPRequestOperation:operation];&
& 对应的使用方法分别是:
2、每次请求返回时,保存cookie,以供以后使用
&get的使用方式:
-(void)asynchronousCookiesGET:(NSString&*)path&witParams:(NSMutableDictionary&*)params
&&&&AFHTTPClient&*httpClient&=&[[AFHTTPClient&alloc]&initWithBaseURL:[NSURL&URLWithString:BASE_URL_SESSION]];
&&&&self.client&=&httpC
&&&&[httpClient&release];
&&&&[self.client&blockGetPath:path&parameters:params&success:^(AFHTTPRequestOperation&*operation,&id&responseObject)
&&&&&&&&&D_END;
&&&&&&&&&LogNET(@&------------------------GET---&------------------------------&);
&&&&&&&&&LogNET(@&netWorking&url::&%@&,operation.request.URL.absoluteString);
&&&&&&&&&LogNET(@&netWorking&params::&%@&,params);
&&&&&&&&&LogNET(@&net&working&statuCode::&%d&,operation.response.statusCode);
&&&&&&&&&LogNET(@&net&working&responseString::&%@&,operation.responseString);
&&&&&&&&&LogNET(@&------------------------GET---&-----------------------------&);
&&&&&&&&&&
&&&&&&&&&NSArray&*cookies&=&[[NSHTTPCookieStorage&sharedHTTPCookieStorage]&cookies];
&&&&&&&&&for&(NSHTTPCookie&*cookie&in&cookies)&{
&&&&&&&&&&&&&
&&&&&&&&&&&&&NSLog(@&Block&cookie:&%@&,&cookie);
&&&&&&&&&}
&&&&&&&&&&
&&&&&&&&&NSData&*cookiesData&=&[NSKeyedArchiver&archivedDataWithRootObject:&[[NSHTTPCookieStorage&sharedHTTPCookieStorage]&cookies]];
&&&&&&&&&NSUserDefaults&*defaults&=&[NSUserDefaults&standardUserDefaults];
&&&&&&&&&[defaults&setObject:&cookiesData&forKey:&@&sessionCookies&];
&&&&&&&&&[defaults&synchronize];
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&&&&&&
&&&&&}failure:^(AFHTTPRequestOperation&*operation,&NSError*&error)
&&&&&&&&&LogNET(@&------------------------GET---&------------------------------&);
&&&&&&&&&LogNET(@&netWorking&url::&%@&,operation.request.URL.absoluteString);
&&&&&&&&&LogNET(@&net&working&statuCode::&%d&,operation.response.statusCode);
&&&&&&&&&LogNET(@&net&working&responseString::&%@&,operation.responseString);
&&&&&&&&&LogNET(@&------------------------GET---&-----------------------------&);
&&&&&&&&&&
&&&&&&&&&WebExceptionEntity*&exception&=&[[WebExceptionEntity&alloc]&initWithExceptionString:operation.responseString&withStatusCode:operation.response.statusCode&withError:error];
&&&&&&&&&self.webException=&
&&&&&&&&&[exception&release];
&&&&&&&&&&
&&&&&&&&&if&(self.exceptionBlock)
&&&&&&&&&{
&&&&&&&&&&&&&self.exceptionBlock(self,self.webException);
&&&&&&&&&}
&&&&&&&&&&
Post的使用方式如下:
-(void)asynchronousCookiesPost:(NSString&*)path
&&&&&&&&&&&&&&witParams:(NSMutableDictionary&*)params
&&&&AFHTTPClient&*httpClient&=&[[AFHTTPClient&alloc]&initWithBaseURL:[NSURL&URLWithString:BASE_URL_SESSION]];
&&&&self.client&=&httpC
&&&&[httpClient&release];
&&&&if&(self.preBlcok)&{
&&&&&&&&self.preBlcok(self);
&&&&[self.client&blockPostPath:path&parameters:params&success:^(AFHTTPRequestOperation&*operation,&id&responseObject)
&&&&&&&&&D_END;
&&&&&&&&&LogNET(@&------------------------POST---&------------------------------&);
&&&&&&&&&LogNET(@&netWorking&url::&%@&,operation.request.URL.absoluteString);
&&&&&&&&&LogNET(@&netWorking&params::&%@&,params);
&&&&&&&&&LogNET(@&net&working&statuCode::&%d&,operation.response.statusCode);
&&&&&&&&&LogNET(@&net&working&responseString::&%@&,operation.responseString);
&&&&&&&&&LogNET(@&------------------------POST---&-----------------------------&);
&&&&&&&&&&
&&&&&&&&&NSArray&*cookies&=&[[NSHTTPCookieStorage&sharedHTTPCookieStorage]&cookies];
&&&&&&&&&for&(NSHTTPCookie&*cookie&in&cookies)&{
&&&&&&&&&&&&&
&&&&&&&&&&&&&NSLog(@&cookie:&%@&,&cookie);
&&&&&&&&&}
&&&&&&&&&&
&&&&&&&&&NSData&*cookiesData&=&[NSKeyedArchiver&archivedDataWithRootObject:&[[NSHTTPCookieStorage&sharedHTTPCookieStorage]&cookies]];
&&&&&&&&&NSUserDefaults&*defaults&=&[NSUserDefaults&standardUserDefaults];
&&&&&&&&&[defaults&setObject:&cookiesData&forKey:&@&sessionCookies&];
&&&&&&&&&[defaults&synchronize];
&&&&&}failure:^(AFHTTPRequestOperation&*operation,&NSError*&error)
&&&&&&&&&LogNET(@&------------------------POST---&------------------------------&);
&&&&&&&&&LogNET(@&netWorking&url::&%@&,operation.request.URL.absoluteString);
&&&&&&&&&LogNET(@&net&working&statuCode::&%d&,operation.response.statusCode);
&&&&&&&&&LogNET(@&net&working&responseString::&%@&,operation.responseString);
&&&&&&&&&LogNET(@&------------------------POST---&-----------------------------&);
&&&&&&&&&WebExceptionEntity*&exception&=&[[WebExceptionEntity&alloc]&initWithExceptionString:operation.responseString&withStatusCode:operation.response.statusCode&withError:error];
&&&&&&&&&self.webException=&
&&&&&&&&&[exception&release];
&&&&&&&&&&
&&&&&&&&&if&(self.exceptionBlock)
&&&&&&&&&{
&&&&&&&&&&&&&self.exceptionBlock(self,self.webException);
&&&&&&&&&}
&&&&&&&&&&
测试运行:
&10:00:53.465&TripPlus[15245:60b]&cookie:&&NSHTTPCookie&version:0&name:&ssid&&value:&79244stsh4p3shv1ftd1125d90&&expiresDate:(null)&created:&02:00:53&+36e+08)&sessionOnly:TRUE&domain:&192.168.1.199&&path:&/&&isSecure:FALSE&
//--使用cookies
TPTripPlusDetailViewController.m:141&&& &&....&开始请求
AFHTTPClient.m:706& post&&add&cookie:&NSHTTPCookie&version:0&name:&acb5f57bfaec0550abdb337d5e8f0f40&&value:&1febc174d86a8fa7ddaa%3A4%3A%7Bi%3A0%3Bs%3A1%3A%221%22%3Bi%3A1%3Bs%3A17%3A%%22%3Bi%3A2%3Bi%3ABi%3A3%3Ba%3A0%3A%7B%7D%7D&&expiresDate:&02:00:50&+0000&created:&00:00:01&+0000&(1)&sessionOnly:FALSE&domain:&192.168.1.199&&path:&/&&isSecure:FALSE&
AFHTTPClient.m:706& post&&add&cookie:&NSHTTPCookie&version:0&name:&ssid&&value:&79244stsh4p3shv1ftd1125d90&&expiresDate:(null)&created:&00:00:01&+0000&(1)&sessionOnly:TRUE&domain:&192.168.1.199&&path:&/&&isSecure:FALSE&
从结果可看出,完美运行。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:21805次
排名:千里之外
原创:26篇
转载:83篇
(3)(1)(1)(2)(1)(2)(2)(1)(2)(3)(6)(30)(14)(26)(1)(14)iOS 使用AFNetworking 3.1.0如何在请求头中加入cookie
我们在使用AFNetworing 的时候, 公司对数据的处理有些是对请求数据的参数进行一些加密而有些是在请求之前在请求头中加入cookie来处理,这样当用户登录之后就不需要再传一些参数对后续数据进行请求,只需要一个cookie和URL就可以搞定数据请求了,目前我们大多数请求都是遵循http协议,不清楚的童鞋可以自行Google,由于ipv6的关系,就直接讲解在AFNetworking 3.1.0下如何在请求头中加入cookie,
既然要加cookie,那么就得获得这个cookie,一般是在用户登录成功后,服务器会在请求头中返回cookie,那么我们使用AFNetworking 3.1.0如何获得这个cookie呢? OK
直接上代码
这个Set-cookie 就会在task.respose中,我们通过实例化NSHTTPURLResponse来取得 Set-cookie(这个字段通过打印内容可以获得)
这样一来我们就可以取得这个cookie了,通过数据持久化存储到本地,在接下来的请求中在请求投中携带这个cookie就OK了,那么怎么携带呢?OK 代码来
之前通过NSUserdefaults,这里就直接取出来了,通过约定好的字段放到请求 头中就OK了 。
好了,基本就是这样了,不清楚的可以Google或者直接问我啦。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:8782次
排名:千里之外
原创:39篇
转载:31篇
(3)(2)(4)(4)(5)(6)(11)(5)(20)(5)(7)(1)(1)(1)1030人阅读
历经几个小时的折腾,硬是没有搜到解决问题的方法。还好在公司前辈的指导下解决了此问题。下面我就把我的解决方法贴出来
&span style=&font-size:18&&
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage]cookies];
NSString *signature = @&&;
NSString *userId = @&&;
NSString *JSESSIONID = @&&;
for (NSHTTPCookie *cookie in cookies) {
if ([cookie.name isEqualToString:@&JSESSIONID&]) {
JSESSIONID = cookie.
if ([cookie.name isEqualToString:@&signature&]) {
signature = cookie.
if ([cookie.name isEqualToString:@&userId&]) {
userId = cookie.
NSString *cookieStr = [NSString stringWithFormat:@&JSESSIONID=%@;signature=%@;userId=%@&,JSESSIONID,signature,userId];
[manager.requestSerializer setValue:cookieStr forHTTPHeaderField:@&Cookie&];&/span&
思路就是把每个cookie的name和value拼接成一个字符串,然后以分号分隔开,再把这个字符串放到Header中。这样在服务器端就会自动解析出cookie的值了。
就这么简单,但是在网上找了大半天硬是没有找到可用的答案。所以把我的答案分享出来以供大家参考。
同理,SDWebImage框架中也可以用此方法。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:6757次
排名:千里之外
原创:11篇
(1)(2)(2)(3)(6)1, 请求并携带SessionId, 代码如下:
//当请求成共后调用如下代码, 保存Cookie
NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookiesForURL: [NSURL URLWithString:kServerAddress]];
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:cookies];
[[NSUserDefaults standardUserDefaults] setObject:data forKey:kUserDefaultsCookie];
//请求前,设置上次保存的Cookie
NSData *cookiesdata = [[NSUserDefaults standardUserDefaults] objectForKey:kUserDefaultsCookie];
if([cookiesdata length]) {
  NSArray *cookies = [NSKeyedUnarchiver unarchiveObjectWithData:cookiesdata];
  NSHTTPCookie *
    for (cookie in cookies) {
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];
通过以上设置, 使用&UIWebView&的&loadRequest&方法load NSURLRequest 可以共用 Cookie.
2, 另一个版本:
  NSArray *cookies = [[NSHTTPCookieStorage sharedHTTPCookieStorage]cookies];
  NSString *signature = @&&;
  NSString *userId = @&&;
  NSString *JSESSIONID = @&&;
  for (NSHTTPCookie *cookie in cookies) {
    if ([cookie.name isEqualToString:@&JSESSIONID&]) {
      JSESSIONID = cookie.
    //其他Cookie值
  NSString *cookieStr = [NSString stringWithFormat:@&JSESSIONID=%@;...&,JSESSIONID,..];
  [manager.requestSerializer setValue:cookieStr forHTTPHeaderField:@&Cookie&];
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:10317次
排名:千里之外
原创:12篇
转载:78篇
(2)(6)(1)(3)(4)(2)(7)(2)(6)(5)(3)(4)(8)(10)(28)

我要回帖

更多关于 php 获取cookie 的文章

 

随机推荐