Objective c 相当于“[NSMutableURLRequest HTTPShouldHandleCookies]的Restkit`
我有两个不同方法的软件:Objective c 相当于“[NSMutableURLRequest HTTPShouldHandleCookies]的Restkit`,objective-c,macos,cookies,restkit,nsurlrequest,Objective C,Macos,Cookies,Restkit,Nsurlrequest,我有两个不同方法的软件: 使用NSMutableURLRequest 使用 在1中。我有以下行: request.HTTPShouldHandleCookies = NO; 由于“方法1.”工作正常,我现在正在寻找使用RestKit的方法的等效方法。当我删除[nshttpcookeStorage sharedhttpcookeStorage]中的所有cookie时,我会得到相同的行为,如下所示: NSHTTPCookieStorage *cookieStorage = [NSHTTPCooki
NSMutableURLRequest
request.HTTPShouldHandleCookies = NO;
由于“方法1.”工作正常,我现在正在寻找使用RestKit的方法的等效方法。当我删除[nshttpcookeStorage sharedhttpcookeStorage]
中的所有cookie时,我会得到相同的行为,如下所示:
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in cookieStorage.cookies)
{
[cookieStorage deleteCookie:cookie];
}
但是,此会删除系统范围内的所有Cookie,因此我会在浏览器中注销受影响的网站
我现在正在寻找一种方法,用RestKit获得与HTTPShouldHandleCookies相当的HTTPShouldHandleCookies
更新:
我正在使用RestKit,如下所示:
[manager putObject: myObject path: path parameters:nil success:nil];
使用
NSHTTPCookieStorage
,您可以在决定删除每个cookie之前对其进行查询(使用domain
/name
)。通过这种方式,您可以只过滤您感兴趣的域的删除
使用RestKit,您可以使用
RKObjectManager
创建NSURLRequest
,使用requestWithObject:method:path:parameters:
(或一个相关方法),然后您可以修改请求并自己执行操作(可能使用RestKit操作).我现在找到了解决问题的方法**:
- (void) disableSessionCookie{
NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
NSArray *cookiesToDelete = @[@"myspecial_session"];
for (NSHTTPCookie *cookie in cookieStorage.cookies){
if([cookie.domain rangeOfString:@"myspecialdomain"].location != NSNotFound){
if([cookiesToDelete containsObject:cookie.name]){
self.sessionCookie = cookie;
[cookieStorage deleteCookie:cookie];
}
}
}
}
- (void) enableSessionCookie{
if(self.sessionCookie){
[[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:self.sessionCookie];
}
}
我使用的不是请求,而是
putObject
(请参阅我的更新答案)。我想知道是否有一种方法可以在全球范围内或按经理设置。作为一种解决方法,我将尝试重新添加已删除的cookie,以便在发出请求后,我将再次登录。