Ios Alamofire使用字典参数的可选值

Ios Alamofire使用字典参数的可选值,ios,swift,alamofire,Ios,Swift,Alamofire,根据苹果对字典值的定义,由于键可能存在也可能不存在,所以从字典返回的任何值都是可选的 还可以使用下标语法从 特定键的字典。因为可以请求 对于不存在值的键,字典的下标返回 字典值类型的可选值。如果字典 包含请求键的值,下标返回 包含该键的现有值的可选值 我正在尝试使用参数字典中的auth_令牌进行网络调用 let params = ["auth_token" : authToken()] print(params["auth_token"]) // shows Optional(dwadhuiwa

根据苹果对字典值的定义,由于键可能存在也可能不存在,所以从字典返回的任何值都是可选的

还可以使用下标语法从 特定键的字典。因为可以请求 对于不存在值的键,字典的下标返回 字典值类型的可选值。如果字典 包含请求键的值,下标返回 包含该键的现有值的可选值

我正在尝试使用参数字典中的auth_令牌进行网络调用

let params = ["auth_token" : authToken()]
print(params["auth_token"]) // shows Optional(dwadhuiwahd)
字典中的值不是可选值。我在authToken()函数中使用条件绑定并将其打印出来来检查这一点。但是,当打印出保存auth_令牌的字典密钥时,它显示为:

Optional(dawudhawhd)
这导致我的网络请求失败

Alamofire.request(.GET, urlString, parameters: params, encoding: .JSON).responseJSON {
        (response) in
//this fails
}
除非我硬编码url

let urlString = "https://staging.travelwithterra.com/api/v1/users/" + agentID + "/agent_info?auth_token=" + authToken()

    Alamofire.request(.GET, urlString, encoding: .JSON).responseJSON {
        (response) in //this doesnt fail }
我的问题是,为什么阿拉莫菲尔不考虑这一点?或者我做错了什么,它要杀了我

********解决方案**********


不要使用.JSON编码。URL编码

您只需要添加一个感叹号。如下图所示

print(params["auth_token"]!) // doesn't show Optional(dwadhuiwahd) :P

那么,
urlString
的定义是什么?不幸的是,这也不起作用。问题是编码设置为.JSON而不是.URL