objective-c - 如何在 iOS 应用程序中修改来自 NSURLRequest 的 cookie

标签 objective-c ios

嗨,我需要修改 cookie,但我正在 iOS 中开发,有人知道如何更改它。也许在 UIWebViewDelegate 中使用 webView:shouldStartLoadWithRequest:navigationType:??

最佳答案

因为 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;

关于objective-c - 如何在 iOS 应用程序中修改来自 NSURLRequest 的 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9321293/

相关文章:

ios - AVPlayerLayer 仅在边界更改时正确设置

ios - 需要将使用 Interface Builder 创建的 UISlider 连接到非事件代码

iphone - 动画 GIF 图像作为 iphone 中的启动画面

objective-c - 我应该使用 == 还是 [NSManagedObject isEqual :] to compare managed objects in the same context?

objective-c - UIPageViewController 作为应用程序的根 Controller

ios - 与更改数组值同步更新 UIView

objective-c - 使用 addSubview 动态添加 UITextField 的 UITableViewCell - 如何在 'return' 击中键盘时获取 UITextField 值

ios - 从解析查询中保存 PFObjects

iphone - 这次如何从datePicker获取时间并运行方法?

ios - swift 函数式计算