3

HTTPCookiesStorage をサブクラス化しましたが、storeCookies() が Cookie を保存することはありませんが、メソッド内で super.storeCookies() を呼び出しています。

カスタムの httpCookiesSession オブジェクトで構成をオーバーライドしない場合、セッションは Cookie を自動的に保存します。私はここでちょっと迷っています。

これは URLSession 呼び出しです

   var configration = URLSessionConfiguration.default
    //configration.httpCookieStorage = customHTTPCookiesStorage()

    let session = URLSession.init(configuration: configration)



    if let url = URL.init(string: "https://google.com"){
        session.dataTask(with: url) { sip,sap,su in
            print(sip,sap,su)

            var x = session.configuration.httpCookieStorage?.cookies

        }.resume()
    }

これがカスタムクラスです

class customHTTPCookiesStorage: HTTPCookieStorage {

    override func storeCookies(_ cookies: [HTTPCookie], for task: URLSessionTask) {

        super.storeCookies(cookies, for: task)
        for cookies in cookies{
            session?.session.configuration.httpCookieStorage?.setCookie(cookies)
        }

        print("This is where cookies are stored")
    }
}

更新 1 私の目的は、HTTP 応答ステータスが 401 のときに、Cookie を httpcookiesstore に保存しないことです。

4

0 に答える 0