Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/111.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Swift中从HTTP请求响应检索cookie_Ios_Swift - Fatal编程技术网

Ios 在Swift中从HTTP请求响应检索cookie

Ios 在Swift中从HTTP请求响应检索cookie,ios,swift,Ios,Swift,第一次参与apple swift项目。我正在构建一个库,在这个库中,我向API发送一个HTTP请求,我需要检索响应中返回的cookie,但由于某些原因,它们没有被检索 下面是我的代码 let url = URL(string: "http://192.168.1.118:500/initialise")! var request = URLRequest(url: url) request.httpMethod = "POST" let param

第一次参与apple swift项目。我正在构建一个库,在这个库中,我向API发送一个HTTP请求,我需要检索响应中返回的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
                }
            }

我已尝试将cookieStorage.cookies URL更改为包含,并将端口号更改为500并将其排除,但不幸的是,这两种方法都不起作用。

请在此尝试一种解决方案。这可能有助于排序,我自己也找到了,但误读了,它有setCookies,我认为它发送了一个带有cookie的请求,而不是从请求中获取cookie。