SAPHTTPCookieStorage

public class SAPHTTPCookieStorage : HTTPCookieStorage

The SAP implemented HTTPCookieStorage which can be used with instances of SAPURLSession. The store can be initialized with a CodableStoring instance which makes it capable to persist cookies between application runs. This implementation won’t share the non-session cookies among the other SAPHTTPCookieStorage instances.

Example:

let sessionConfiguration = URLSessionConfiguration.default
sessionConfiguration.httpCookieStorage = sapCookieStorage
let sapUrlSession = SAPURLSession(configuration: sessionConfiguration)
  • The cookie accept policy preference of the receiver.

    Declaration

    Swift

    override public var cookieAcceptPolicy: HTTPCookie.AcceptPolicy { get set }
  • An array of the currently available HTTPCookies.

    Declaration

    Swift

    override public var cookies: [HTTPCookie]? { get }
  • Returns an array of cookies to send to the given URL. The cookie manager examines the cookies it stores and includes those which should be sent to the given URL. You can use +[NSCookie requestHeaderFieldsWithCookies:] to turn this array into a set of header fields to add to a request.

    Declaration

    Swift

    override public func cookies(for URL: URL) -> [HTTPCookie]?

    Parameters

    URL

    The URL for which to get cookies.

    Return Value

    an array of HTTPCookie

  • Note: This method currently does not sort! Returns an array of all cookies in the store, sorted according to the key value and sorting direction of the NSSortDescriptors specified in the parameter. Proper sorting of cookies may require extensive string conversion, which can be avoided by allowing the system to perform the sorting. This API is to be preferred over the more generic -[NSHTTPCookieStorage cookies] API, if sorting is going to be performed.

    Declaration

    Swift

    override public func sortedCookies(using sortOrder: [NSSortDescriptor]) -> [HTTPCookie]

    Parameters

    sortOrder

    an array of NSSortDescriptors which represent the preferred sort order of the resulting array.

  • Sets a cookie, following the cookie accept policy. The cookie will override an existing cookie with the same name, domain and path, if any.

    Declaration

    Swift

    override public func setCookie(_ cookie: HTTPCookie)

    Parameters

    cookie

    the cookie to set

  • Adds an array cookies to the cookie store, following the cookie accept policy. For mainDocumentURL, the caller should pass the URL for an appropriate main document, if known. For example, when loading a web page, the URL of the main html document for the top-level frame should be passed. To save cookies based on a set of response headers, you can use +[NSCookie cookiesWithResponseHeaderFields:forURL:] on a header field dictionary and then use this method to store the resulting cookies in accordance with policy settings.

    Declaration

    Swift

    override public func setCookies(_ cookies: [HTTPCookie], for URL: URL?, mainDocumentURL: URL?)

    Parameters

    cookies

    the cookies to set

    URL

    the URL from which the cookies were sent

    mainDocumentURL

    the main document URL to be used as a base for the same domain as main document policy

  • Delete the specified cookie.

    Declaration

    Swift

    override public func deleteCookie(_ cookie: HTTPCookie)

    Parameters

    cookie

    the cookie to delete

  • Delete all cookies from the cookie storage since the provided date.

    Declaration

    Swift

    override public func removeCookies(since date: Date)

    Parameters

    date

    the date from which the cookies should be deleted

  • Sets an array of cookies for the given URLSessionTask.

    Declaration

    Swift

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

    Parameters

    cookies

    the cookies to set

    task

    the task to relate the cookies to

  • Retrieves an array of cookies corresponding to the given URLSessionTask.

    Declaration

    Swift

    override public func getCookiesFor(_ task: URLSessionTask, completionHandler: @escaping ([HTTPCookie]?) -> Swift.Void)

    Parameters

    task

    the task for which the cookies needed

    completionHandler

    the completionHandler that gets called with the array of cookies