Alamofire header throwing error: Cannot convert value of type to expected type
Alamofire header throwing error: Cannot convert value of type to expected type
我正在尝试使用 Alamofire(header 令牌身份验证)发出 POST 请求,但出现错误
Cannot convert value of type '[String:String]' to expected argument type '[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.")
}
}
}
您的 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 ]
你可以使用一些像这样的代码
AF.request(URL_THEARTER,方法:.get,parameters:nil,编码:JSONEncoding.default,headers:HTTPHeaders.init(BEARER_HEADER)) .responseJSON {(响应)在
经过四个小时的努力,我也遇到了同样的问题。 link 下面帮助我解决了我的问题。
实际上我打印了回复,清楚地说
the app transport security policy requires secure connections.
如上所述link我们必须添加条目
Add App Transport Security Settings as dictionary
然后添加 Transport Security 的子项
Allow Arbitrary Loads, as Boolean and set to true/YES.
我正在尝试使用 Alamofire(header 令牌身份验证)发出 POST 请求,但出现错误
Cannot convert value of type '[String:String]' to expected argument type '[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.")
}
}
}
您的 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 ]
你可以使用一些像这样的代码 AF.request(URL_THEARTER,方法:.get,parameters:nil,编码:JSONEncoding.default,headers:HTTPHeaders.init(BEARER_HEADER)) .responseJSON {(响应)在
经过四个小时的努力,我也遇到了同样的问题。 link 下面帮助我解决了我的问题。
实际上我打印了回复,清楚地说
the app transport security policy requires secure connections.
如上所述link我们必须添加条目
Add App Transport Security Settings as dictionary
然后添加 Transport Security 的子项
Allow Arbitrary Loads, as Boolean and set to true/YES.