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

时间:2016-05-19 08:15:01

标签: http-headers swift2 alamofire

我正在尝试使用Alamofire(标头令牌身份验证)发出POST请求但是我被抛出错误

  

无法将'[String:String]'类型的值转换为预期的参数类型'[String:String]'

Token header error

我该如何解决?

这是我的代码:

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.")
        }
    }

}

3 个答案:

答案 0 :(得分:3)

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

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

但你应该先检查你的令牌是否为零。例如:

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

答案 1 :(得分:0)

您可以使用如下代码   AF.request(URL_THEARTER,方法:.get,参数:nil,编码:JSONEncoding.default,标头:HTTPHeaders.init(BEARER_HEADER))。responseJSON {(reponse)in

答案 2 :(得分:-1)

经过四个小时的挣扎,我也遇到了同样的问题。下面的链接可以帮助我解决问题。

https://stackoverflow.com/a/50149146/7417935

实际上我在回复中清楚地标明

应用程序传输安全策略要求安全连接。

如上面的链接所述,我们必须添加条目

将App Transport安全设置添加为字典

然后添加运输安全性的子级

允许任意加载,为布尔值并将其设置为true / YES。