Swift Cookie信息的读写

swift2.x

网上有很多Cookie读写的代码

我自己整理了一份:

CookiesUtils.swift

//
//用于保存网页登陆的cookie信息,实现二次登陆面登陆的功能,同时获取cookie中的用户信息保存到本地
//  manyiwang
//
//  Created by weichongchong on 16/10/14.
//  Copyright © 2016年 manyiwang. All rights reserved.
//

import UIKit
class CookiesUtils {
     //保存登录后网页的cookie信息
    
    static func saveCookies() {
        //print("保存cookie信息:");
        
        
        if let cookies: NSArray = NSHTTPCookieStorage.sharedHTTPCookieStorage().cookiesForURL(NSURL(string: MyConstant.ArtWork_WebUrl)!)!
        {
            let data: NSData = NSKeyedArchiver.archivedDataWithRootObject(cookies)
            NSUserDefaults.standardUserDefaults().setObject(data, forKey: "manyiabycookie")
            
            //将用户名保存到本地
            //var userDefault = NSUserDefaults.standardUserDefaults()
            
           // userDefault.setObject("15539187816", forKey: "username")
           // var nsStringValue = userDefault.objectForKey("username") as! NSString
        
        }else{
            print("保存cookie信息失败")
        }
        
    }
    
    //把保存的cookie信息取出来,在下次登陆的时候设置进去实现面登陆
    static func retrieveCookies() {
       //print("取出保存到本地的cookie信息:")
        let cookiesdata:NSData! = NSUserDefaults.standardUserDefaults().objectForKey("manyiabycookie") as? NSData
        
        if(cookiesdata == nil ){
            print("取出保存到本地的cookie信息:cookiesdata == nil ")
            
        }else{
           // print("取出保存到本地的cookie信息:")
            if cookiesdata.length > 0{
                let cookies: NSArray = NSKeyedUnarchiver.unarchiveObjectWithData(cookiesdata) as! NSArray
                for cookie in cookies {
                    NSHTTPCookieStorage.sharedHTTPCookieStorage().setCookie(cookie as! NSHTTPCookie)
                    print(cookie.name)
                    if(cookie.name == "userName"){
                        print(cookie.name)
                        //print(String(cookie.values))//这句代码返回为空nil
                        //获取用户名
                        let usernameString:String = String(cookie.valueForKey("value"))
                        
                        //字符串截取需要的信息
                        let range=Range<String.Index>(start: usernameString.startIndex.advancedBy(9), end: usernameString.endIndex.advancedBy(-1)) //Swift 2.0
                        let userName=usernameString.substringWithRange(range)
                       // print(usernameString)
                       // print(userName)
                       
                        
                        //将用户名保存到本地
                        var userDefault = NSUserDefaults.standardUserDefaults()
                        
                        userDefault.setObject(userName, forKey: "username")
                      
                    }
                }
                //打印全部的name和value
                //var name:String  = String(cookies.valueForKey("name"))
                // var value:String = String(cookies.valueForKey("value"))
                // print(name)
                // print(cookies.valueForKey("value"))
                
                //print(cookiesdata)
            }
        }
    }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值