Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Alamofire Request error only on GET requests

I'm working on transferring my project from AFNetworking to Alamofire. Really like the project. POST requests work just fine, however, I'm receiving this error when attempting to make a GET request.

Here's some example code:

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)
}

I receive this error: : -1005 The network connection was lost

However, if I change the request type to .POST, the request "works". I receive a 401 code, but at least the request doesn't lose Network connection.

What am I doing wrong?

like image 381
Cody Winton Avatar asked Dec 02 '22 13:12

Cody Winton


1 Answers

You're encoding the parameters as JSON in the body of the request, try encoding the parameters in the URL by changing the encoding to URL:

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

As this is the default behavior, you can simply remove it:

return Alamofire.request(.GET, urlString, parameters: parameters, headers: headers)
like image 140
redent84 Avatar answered Dec 21 '22 15:12

redent84