Alamofire请求错误:NSURLError域代码-1005网络连接丢失



我正在将我的项目从AFNetworking转移到Alamofire。真的很喜欢这个项目。但是,我在尝试发出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)
}

然后,在我的VC中:

listCloudCredntials().validate().responseJSON() {
    (response: Response<AnyObject, NSError>) in
    switch response.result {
    case .Success(let result):
        printCR("success: (result)")
    case .Failure(let error):
        printCR("error: (error)")
    }
}

这是我遇到的错误:

错误域=NSURLErrorDomain Code=-1005"网络连接为迷路的"UserInfo={NSUnderlyingError=0x14e9c77f0{Error域=kCFErrorDomainCF网络代码=-1005"(null)"UserInfo={_kCFStreamErrorCodeKey=-4、_kCFSstreamErrorDomainKey=4}},NSErrorFailingURLStringKey=https://myapp-staging.herokuapp.com/api/1/credentials,NSErrorFailingURLKey=https://myapp-staging.herokuapp.com/api/1/credentials,_kCFStreamErrorDomainKey=4,_kCFStream ErrorCodeKey=-4,NSLocalizedDescription=网络连接丢失。}

我试过在iOS模拟器上运行1OS 8.4和iOS 9.1,以及运行iOS 9.1的iPhone 6S。

我做错了什么?

--------编辑--------

要澄清的是,此功能与AFNetworking配合使用很好

以下是debugprint(请求)结果(这是一个GET请求):

$ curl -i 
-H "Authorization: Bearer some-JWT-Security-Token" 
-H "Content-Type: application/json" 
-H "Accept-Language: en-US;q=1.0" 
-H "Accept-Encoding: gzip;q=1.0,compress;q=0.5" 
-H "User-Agent: Company/com.Company.AppName (1081; OS Version 9.2 (Build 13C75))" 
-d "{"include_pending":"true"}" 
"https://appname-staging.herokuapp.com/api/1/credntials"

为了使curl成功返回,我必须将curl-I更改为curl-XGET。

这是我需要在应用程序中打的另一个电话,它可以正常工作。

curl -i 
-X POST 
-H "Content-Type: application/json" 
-H "Accept-Language: en-US;q=1.0" 
-H "Accept-Encoding: gzip;q=1.0,compress;q=0.5" 
-H "User-Agent: Company/com.Company.AppName (1081; OS Version 9.2 (Build 13C75))" 
-d "{"token":"UserSessionTokenString"}" 
"https://appname-staging.herokuapp.com/api/1/authenticate/user"

这可能是GET和POST的区别吗?

已解决!我对GET请求使用JSON编码。答案如下:Alamofire请求错误仅发生在GET请求

如果将请求保留在vc或其他对象中,则此错误将消失。

最新更新