ios - Swift - urlsession cookies

标签 ios swift

我有一个运行良好的 php webAPI,我想在我的应用程序中使用它登录。我想为此使用 cookie。因此,我在用户登录时保存 cookie,这样就可以了。当我只想使用将 cookie 放入 HTTPCookieStorage.shared 时,我将它存储在 userdefaults 中。

我尝试将它用于我的新请求,但我的问题是如何将 cookie 添加到我的请求中?

我试过了,但是没用...

let cookiesArray = HTTPCookieStorage.shared.cookies
    print(cookiesArray)
    //HTTPCookieStorage.shared.setCookies(cookiesArray!, for: url, mainDocumentURL: url)
    let headers = HTTPCookie.requestHeaderFields(with: cookiesArray!)



    var urlRequest = URLRequest(url: url)
    urlRequest.httpMethod = "POST"
    urlRequest.httpShouldHandleCookies = true
    urlRequest.httpBody = postString.data(using: String.Encoding.utf8)

    urlRequest.allHTTPHeaderFields = headers
    //urlRequest.setValue("PHPSESSID=oe22uf92poc5c7s23u4ukl83g0", forHTTPHeaderField: "Cookie")

    //URLSessionConfiguration().httpCookieAcceptPolicy = .always
    let session = URLSession.shared
    session.configuration.httpCookieStorage = HTTPCookieStorage.shared
    session.configuration.httpCookieAcceptPolicy = .always
    session.configuration.httpShouldSetCookies = true
    session.configuration.httpAdditionalHeaders = headers
    let task = session.dataTask(with: urlRequest) { (data, response, error) in




        print(data)
        print(response)
        print(error)
        print("itt az end\n")
    }
    task.resume()

最佳答案

我还不能发表评论,但我同意需要更多信息。如果您遇到错误,发布这些错误会有所帮助。另外,你得到了什么

data 
response
error

会有帮助。

除此之外,我会首先考虑将 Charles 设置为 HTTP 代理,这样您就可以准确地看到发出请求时发生了什么。了解您收到的响应会让您知道出了什么问题。

https://www.charlesproxy.com/

关于ios - Swift - urlsession cookies,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47077773/

相关文章:

ios - Storyboard中的主视图尺寸不正确(仅限纵向)

ios - UIButton 喜欢评级栏,我想做任何人帮助我吗?

ios - UIBarButton 项目不会出现在导航栏中

ios - 在 mapbox View 上显示数千个标签时,有没有办法提高性能?

ios - Capabilities 下的 "Fix Issue"使我的配置文件无效。否则推不工作

ios - Swift 2 SOAP Web 服务调用

objective-c - 从 NSMutableArray 中提取值时出现问题

unicode - 如何在 Swift 中向 Unicode 字符串添加属性?

ios - 在 Swift 中的 UITextView 上放置阴影

ios - 在 swift 中使用 UILabel 的子类设置自定义边框