Получить куки из ответа HTTP-запроса в Swift - PullRequest
0 голосов
/ 07 октября 2019

Первый раз работаю над проектом Apple Swift. Я создаю библиотеку, в которой отправляю HTTP-запрос в API, и мне нужно получить cookie-файлы, которые возвращаются в ответе, но по какой-то причине они не извлекаются.

Ниже приведен код, который у меня есть.

let url = URL(string: "http://192.168.1.118:500/initialise")!
        var request = URLRequest(url: url)
        request.httpMethod = "POST"
        let parameters: [String: String] = [
            "ApplicationID": app_id,
            "DeviceID": "123456",
            "AppVersion": app_version
        ]

        request.setValue(api_key, forHTTPHeaderField: "authorisation-token")

        //request.httpBody = parameters.percentEscaped().data(using: .utf8)
        let postString = self.getPostString(params: parameters)
        request.httpBody = postString.data(using: .utf8)

        let task = URLSession.shared.dataTask(with: request) {data, response, error in
            guard let data = data,
            let response = response as? HTTPURLResponse,
                error == nil else {
                    print("error", error ?? "Unknown Error")
                    return
            }

            guard(200...299) ~= response.statusCode else {
                print("statusCode should 2xx, but is \(response.statusCode)")
                print("response = \(response)")
                return
            }

            print ("HTTP Status Code: " + String(response.statusCode))

            print ("-------Cookies--------")

            let cookieStorage = HTTPCookieStorage.shared

            let cookies = cookieStorage.cookies(for: URL(string:"192.168.1.118:500")!) ?? []
            for cookie in cookies {

                if cookie.name == "SESSIONID" {
                    MyClass.SESSIONID = cookie.value
                }
                else if cookie.name == "DO-LB" {
                    MyClass.DOLB = cookie.value
                }
            }

Я попытался изменить URL-адрес cookieStorage.cookies, чтобы включить и номер порта 500, и исключить его, но, к сожалению, ни один из них не сработал.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...