iOS   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了json – Alamofire错误域= NSURLErrorDomain代码= -999“已取消”大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

已经成功获得了令牌的钥匙串并将其传递给下面显示的AccessTokenAdapter类. http127.0.0.1:8000 / api2 / projects /?format = json作为projectsURL传递. class AccessTokenAdapter: requestAdapter { private let accessToken: String
已经成功获得了令牌的钥匙串并将其传递给下面显示的AccessTokenAdapter类.
http127.0.0.1:8000 / api2 / projects /?format = json作为projectsURL传递.

class AccessTokenAdapter: requestAdapter {
        private let accessToken: String

        init(accessToken: String) {
            self.accessToken = accessToken
        }

        func adapt(_ urlrequest: URLrequest) throws -> URLrequest {
            var urlrequest = urlrequest
         //   print("JWT \(accessToken)")
            urlrequest.SETVALue("JWT \(accessToken)",forhttpHeaderField: "Authorization")

            return urlrequest
        }
    }


    let sessionManager = SessionManager()
    sessionManager.adapter = AccessTokenAdapter(accessToken: self.keychain["token"]!)

    sessionManager.request(self.projectsURL,method: .get,encoding: JSONEncoding.default).responseJSON{ response in
        switch response.result {
        case .success:
            print("yey I made it")
        case .failure(let error):
            print(error)
        }
    }

但是,从打印(错误),我的Xcode显示错误
错误域= NSURLErrorDomain代码= -999“已取消”UserInfo = {NSErrorFailingURLKey = http://127.0.0.1:8000/api2/projects/?format=json,NSLocalizedDescription =已取消,NSErrorFailingURLStringKey = http127.0.0.1:8000 / api2 / projects /?format = json}

有任何想法吗?
Alamofire 4.0
钥匙扣
Xcode 8.1
Swift3
使用JWT进行身份验证
使用Postman with header,key =“Authentication”,value =“JWT(此处生成的令牌)”工作正常

解决方法

当你使sessionManager成为一个常量时,它不会比拥抱它的功能更长寿,因此一旦管理器被释放,会话就会结束.

解决此问题,请将sessionManager保持更长时间.例如,在我的情况下,我使它成为一个属性

class Networkrequest: {

   var sessionManager = Alamofire.SessionManager()

   ...

   func performrequest(_ call: APICall,customLink: String = "",parameters: Dictionary<String,Any> = ["":"" as Any]) {

        let sessionConfig = URLSessionConfiguration.default
        sessionConfig.timeoutIntervalForrequest = call.suggestedTimeout()
        sessionConfig.timeoutIntervalForresource = call.suggestedTimeout()
        sessionManager = Alamofire.SessionManager(configuration: sessionConfig)
        sessionManager.adapter = AccessTokenAdapter()

        sessionManager.request(urlString,method: call.method(),parameters: parameters,encoding: call.chooseEncoding(),headers: [:])
        .responseJSON
        { response in
          ...
        }

}

根据您的具体情况,解决方案可能会有所不同,但其目的是让sessionManager保持活动状态,直到网络请求结束.

大佬总结

以上是大佬教程为你收集整理的json – Alamofire错误域= NSURLErrorDomain代码= -999“已取消”全部内容,希望文章能够帮你解决json – Alamofire错误域= NSURLErrorDomain代码= -999“已取消”所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。