iOS 9上的Alamofire 1.3

时间:2015-09-18 10:29:53

标签: ios xcode ios9 alamofire

看起来在iOS 9上没有设置身份验证标头。我们无法更新到Alamofire 2.0,因为我们还没有将代码迁移到Swift 2。还有其他人遇到过这个问题吗?

3 个答案:

答案 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的最新更新:

https://github.com/Alamofire/Alamofire