swift2 Alamofire标题抛出错误:无法将类型的值转换为预期的类型

mcvgt66p  于 2022-11-06  发布在  Swift
关注(0)|答案(3)|浏览(177)

我尝试使用Alamofire(标头令牌身份验证)发出POST请求,但却被抛出错误
无法将类型“[String:String]”的值转换为所需的参数类型“[String:String]”

我该如何修复它?
这是我的代码:

func validationSuccessful() {

    let Auth_header = [ "Authorization" : Data.sharedInstance.token ]

    Alamofire.Manager.sharedInstance.request(.POST, Data.weeklyEndpoint, headers: Auth_header, parameters: ["username": Data.sharedInstance.userName!, "password": Data.sharedInstance.passWord!]).responseJSON {
        response in

        if let result = response.result.value
        {
            print(response.request)
            print(response.response)
            print(response.result)

        }
        else
        {
            print("JSON data is nil.")
        }
    }

}
qaxu7uf2

qaxu7uf21#

您的Data.sharedInstance.token是一个可选的...要修复此问题,您可以编写

let Auth_header = [ "Authorization" : Data.sharedInstance.token ?? "" ]

但是您应该先检查您的token是否为null。例如:

guard let token = Data.sharedInstance.token else { print("Empty token"); return }
let Auth_header = [ "Authorization" : token ]
cbeh67ev

cbeh67ev2#

您可以使用类似于以下代码AF.request(URL_THEARTER,方法:.get,参数:nil,编码:JSON编码。默认值,头:如果您有任何问题,请单击“取消”。

bvjveswy

bvjveswy3#

我也有同样的问题,经过四个小时的斗争摆脱掉。下面的链接帮助我解决我的问题。
https://stackoverflow.com/a/50149146/7417935
实际上我打印了回复,上面清楚地写着
应用程序传输安全策略需要安全连接。
如以上链接所述,我们必须添加条目
将应用程序传输安全设置添加为字典
然后添加传输安全的子级
允许任意加载,为布尔值并设置为true/YES。

相关问题