Alamofire请求仅在GET请求上出现错误

4

我正在将我的项目从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 网络连接丢失

然而,如果我将请求类型改为 .POST,请求就“成功”了。我会收到401代码,但至少请求不会失去网络连接。

我做错了什么?

1个回答

18

您正在将参数编码为请求体中的 JSON 格式,请尝试通过更改编码为 URL 将参数编码在 URL 中:

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

由于这是默认行为,您可以直接将其删除:

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

嗨,我正在使用 Alamofire.request(url, method: .post, parameters: parameters, headers: headers).responseJSON 但是当我连续调用API时仍然会出现这个错误..请帮帮我。自从开始使用Alamofire以来,这个错误一直困扰着我。 - ami rt
@amirt 嘿伙计,你是怎么解决那个问题的?我正在使用和你一样的方法,但是当我连续调用API时出现了错误。我的网络完全正常。 - JsW
仍未找到解决方案,但为了克服这个有压力的问题,我只需检查 Error_code == 1005 并再次调用 API。 - ami rt

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接