当前位置: 首页 > 知识库问答 >
问题:

试图访问Alamofire中的错误代码

苏阳州
2023-03-14

我用的是阿拉莫菲尔4。当我这样做的时候

print(response.debugDescription)

我在控制台里有这样的东西:

[Request]: https://api2.website.com
[Response]: nil
[Data]: 0 bytes
[Result]: FAILURE: Error Domain=NSURLErrorDomain Code=-1009 "The Internet connection appears to be offline." UserInfo={NSUnderlyingError=0x17444ace0 {Error Domain=kCFErrorDomainCFNetwork Code=-1009 "(null)" UserInfo={NSErrorPeerAddressKey=<CFData 0x170490e50 [0x1ab165bb8]>{length = 16, capacity = 16, bytes = 0x100201bb341d1f890000000000000000}, _kCFStreamErrorCodeKey=57, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey=https://api2.flowwow.com/api2/client/info/?auth_token=da88d8aa49ff6f8bb4e1&hash=7f38be3f68db39a6d88687505fdb9ba5&partner_id=1004, NSErrorFailingURLKey=https://api2.website.com, _kCFStreamErrorDomainKey=1, _kCFStreamErrorCodeKey=57, NSLocalizedDescription=The Internet connection appears to be offline.}
[Timeline]: Timeline: { "Request Start Time": 510763454.078, "Initial Response Time": 510763455.293, "Request Completed Time": 510763455.293, "Serialization Completed Time": 510763455.297, "Latency": 1.215 secs, "Request Duration": 1.215 secs, "Serialization Duration": 0.005 secs, "Total Duration": 1.220 secs }

我感兴趣的是一条特别的路线:

Error Domain=NSURLErrorDomain Code=-1009

如何获取此代码以便正确处理错误。我尝试了所有我能编出来的组合,但是在任何地方都没有这个代码的痕迹。

共有2个答案

别永年
2023-03-14

阿拉莫菲尔请求样本

let request = Alamofire.request(urlString,
                                               method: method,
                                               parameters: parameters,
                                               encoding: encoding,
                                               headers: defaultHeaders())

/// Response Status code 
/// This status code will be the response’s HTTP status code.
request.responseJSON { response in
        if let code = response.response?.statusCode {
            NSLog("  Received response: \(code) \(HTTPURLResponse.localizedString(forStatusCode: code))")
        }
        switch response.result {
        case .success:
            /// Parse data
            parseData(rawdata: response.data, completion: completion)
        case .failure(let error):
            parseFailure(response, error, completion)
        }
    }

希望这有帮助!!

贝研
2023-03-14

当您使用Alamofire打电话时,它会返回一个响应,您可以在该响应中检查任何错误。这是一个使用Alamofire处理错误调用的简单示例。

Alamofire.request("https://your.url.com").responseJSON { response in
    if (response.result.isSuccess){
        //do your json stuff
    } else if (response.result.isFailure) {
        //Manager your error
        switch (response.error!._code){
            case NSURLErrorTimedOut:
                //Manager your time out error
                break
            case NSURLErrorNotConnectedToInternet:
                //Manager your not connected to internet error
                break
            default:
                //manager your default case 
            }
    }
}

享受:)

更新于2020年4月1日

此代码应该适用于Alamofire 5版本。我还是没检查,让我知道这是否有效

AF.request(route).responseJSON { (response) in
    let result = response.result
    switch result {
    case .success(let value):
        print("Success")
        // Do something with value
    case .failure(let error):

        if let underlyingError = error.underlyingError {
            if let urlError = underlyingError as? URLError {
                switch urlError.code {
                case .timedOut:
                    print("Timed out error")
                case .notConnectedToInternet:
                    print("Not connected")
                default:
                    //Do something
                    print("Unmanaged error")
                }
            }
        }
    }
}

我希望这能奏效:)

 类似资料:
  • 问题内容: 像这样的代码: 问题答案: 不适用于我。最好在 Alamofire中 使用这样的代码:

  • 问题内容: Xcode 8 beta 4中的新增功能桥接到Swift 协议类型。处理失败的时,这会影响StoreKit 。您应该检查以确保没有发生错误,因为交易被取消了才知道是否向用户显示错误消息。您可以通过检查错误的完成此操作。但是使用代替,没有定义。我还无法弄清楚如何从中正确获取错误代码。 这在Swift 3的先前版本中有效: 现在是一个not ,不是成员。 问题答案: 在xCode 8和Sw

  • 我正在我的项目中进行登录,我正在使用Alamofire请求(swift 2.0),我总是遇到无法解决的错误。 错误域=NSURLErrorDomain代码=-999“已取消”用户信息=。。。{NSErrorFailingURLKey=…,NSLocalizedDescription=已取消,NSErrorFailingURLStringKey=…} 这是我的密码: 当用户按下按钮时,我在Login

  • 我已经成功地为我的令牌获得了钥匙链,并将其传递给如下所示的AccessTokenAdapter类。超文本传输协议127.0.0.1:8000/api2/projects/?format=json传递为project ectsURL。 但是,从print(error)开始,我的Xcode显示了类似于error Domain=nsurerrordomain Code=-999“cancelled”Us

  • 使用Alamofire 4/Swift 3,您如何区分由于以下原因而失败的请求: 网络连接(主机关闭,无法连接到主机)vs 代码: 我们希望以不同的方式处理每个案件。在后一种情况下,我们要询问回答。(在前一种情况下,我们不知道,因为没有回应)。

  • 大家好,我几个月前安装了premium edition burp。我可以很容易地从我的电脑上拦截web应用程序。但是当我试图从我的Android设备上拦截应用程序时,问题出现了。我很努力地在网上搜索任何可能的解决方案,但都没有效果。当我用手机连接burp并试图访问Http网站时,我总是无法通过代理服务器错误访问。还有,你能告诉我如何拦截来自messenger、Facebook for Androi