2012-02-17 67 views
2

嗨我需要修改一个cookie,但我在iOS中开发,有人知道如何更改它。也许在使用webView的UIWebViewDelegate中:shouldStartLoadWithRequest:navigationType:??如何在iOS应用程序中修改来自NSURLRequest的cookie

+0

给我们在这里稍微详细一点。你已经有cookie了吗?什么是设置cookie?你需要做什么样的修改? – Nick 2012-02-17 06:32:20

回答

4

因为WebKit.framework不适用于IOS,最好的办法是使用事件的UIWebView shouldStartLoadWithRequest和webViewDidFinishLoad,还有我用NSHTTPCookieStorage类的Cookie,并有修改如下

NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage]; 
NSArray *cookies = [sharedHTTPCookieStorage cookiesForURL:[NSURL URLWithString:self.webView.request.URL.absoluteString]]; 
NSEnumerator *enumerator = [cookies objectEnumerator]; 
NSHTTPCookie *cookie; 
while (cookie = [enumerator nextObject]) 
{ 
    if ([[cookie name] isEqualToString:key]) 
    { 
     NSString *actcookie = [cookie value]; 
     NSMutableString *newcookiestring = [NSMutableString stringWithFormat:@"%@changes",actcookie]; 
     NSMutableDictionary *propscook = [[NSMutableDictionary alloc] initWithDictionary: [cookie properties]]; 
     [propscook setObject:newcookiestring forKey:NSHTTPCookieValue]; 
     NSHTTPCookie *newcookie = [NSHTTPCookie cookieWithProperties:propscook]; 

     [sharedHTTPCookieStorage setCookie:newcookie]; 

     return [cookie value]; 
    } 
} 
return nil; 
+0

不错的工作,谢谢你的解决方案。 – 2014-05-13 14:48:01

+0

“propiedades”应该是“propscook”,对吧? – 2014-05-13 18:38:26

相关问题