看起来在iOS 9上没有设置身份验证标头。我们无法更新到Alamofire 2.0,因为我们还没有将代码迁移到Swift 2。还有其他人遇到过这个问题吗?
答案 0 :(得分:1)
我遇到了同样的问题,因为我通过会话配置管理器将标题放在那里:
Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders?.updateValue("Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==", forKey: "Authorization")
Alamofire.Manager.sharedInstance.session.configuration.HTTPAdditionalHeaders?.updateValue("application/x-www-form-urlencoded", forKey: "Content-Type")
它适用于iOS 8,但iOS9却什么也没做。我没有注意到你也可以在发出请求时直接设置标题:
let headers = [
"Authorization": "Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==",
"Content-Type": "application/x-www-form-urlencoded"
]
Alamofire.request(.GET, "http://httpbin.org/get", headers: headers)
.responseJSON { _, _, JSON, _ in
println(JSON)
}
现在它适用于我。
答案 1 :(得分:1)
使用此代码
let headers = [
"Authorization": userData.userAPIKey!,
]
Alamofire.request(.GET, url, parameters: nil, encoding: .URL, headers:headers).response { (request, response, data, error) -> Void in
}
答案 2 :(得分:1)
这是我的示例代码,我之前也遇到了同样的问题。现在它已经解决了。
// Step : 1
var manager = Manager.sharedInstance
// Specifying the Headers we need
manager.session.configuration.HTTPAdditionalHeaders = [
"Content-Type": "application/graphql",
"Accept": "application/json" //Optional
]
// Step : 3 then call the Alamofire request method.
Alamofire.request(.GET, url2).responseJSON { request, response, result in
print(result.value)
}
试试这个,或者你可以在xcode 7上查看alamofire的最新更新: