Alamofire仅在GET请求上请求错误

时间:2015-12-22 17:57:52

标签: ios xcode swift rest alamofire

我正在努力将我的项目从AFNetworking转移到Alamofire。真的很喜欢这个项目。 POST请求工作正常,但是,我在尝试发出GET请求时收到此错误。

以下是一些示例代码:

class func listCloudCredntials(onlyNew onlyNew: Bool = true, includePending: Bool = true) -> Request {

    let parameters: [String: AnyObject] = includePending ? ["include_pending": "true"] : [:]

    let urlString = "https://myapp-staging.herokuapp.com/api/1/credntials"

    let token = SSKeychain.storedToken()

    let headers: [String: String] = ["Authorization": "Bearer \(token)"]

    return Alamofire.request(.GET, urlString, parameters: parameters, encoding: .JSON, headers: headers)
}

我收到此错误:-1005 The network connection was lost

但是,如果我将请求类型更改为.POST,请求"可以正常工作"。我收到401代码,但至少请求不会丢失网络连接。

我做错了什么?

1 个答案:

答案 0 :(得分:16)

您将参数编码为请求正文中的JSON,尝试通过将编码更改为URL来对网址中的参数进行编码:

return Alamofire.request(.GET, urlString, parameters: parameters, encoding: .URL, headers: headers)

由于这是默认行为,您只需将其删除即可:

return Alamofire.request(.GET, urlString, parameters: parameters, headers: headers)