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

Alamofire 4故障:错误域=NSURErrorDomain代码=-999“已取消”

穆商震
2023-03-14

嗨,我试图使用阿拉莫菲尔为我的项目,但错误出来了。这是我的请求代码//谷歌测试

  Alamofire.request("http://google.com").responseString{
        response in
        debugPrint(response)
    }.session.invalidateAndCancel()

结果]:失败:错误域=nsurErrorDomain代码=-999“已取消”

UserInfo={NSErrFailingURLKey=http://google.com/,

NSLocalizedDescription=已取消,

NSERRORFAILLINGURLSTRINGKEY=http://google.com/}

//自有服务器测试

    Alamofire.request("https://10.68.24.127:4533").responseString{
        response in
        debugPrint(response)
    }.session.invalidateAndCancel()

同样的结果

    class NetworkManager {

var manager: SessionManager?

init() {
    let serverTrustPolicies: [String: ServerTrustPolicy] = [
        "https://10.68.24.127:4533" : .disableEvaluation
    ]
    let configuration = URLSessionConfiguration.default
    manager = Alamofire.SessionManager(
        configuration: configuration,
        serverTrustPolicyManager :ServerTrustPolicyManager(policies: serverTrustPolicies)
    )
}
    }

我将NSAllowsArbitraryLoads设置为true和NSExceptionDomains。

问题出在哪里?

共有3个答案

袁秦迟
2023-03-14


如果您面临请求立即取消的问题,您可以在Alamofire存储库问题中引用此问题

杰希尔于2016年10月10日发表评论

意外错误-999几乎总是意味着您的SessionManager已解除分配,取消了任何正在进行的请求。我建议您为自定义SessionManager创建一个单例值,或者如果您真的需要一个值,可以重新评估。

如果您为您的对象创建一个单例值,它将保留在内存中,并防止释放

我避免的另一件事是将您的变量命名为不同的,在Alamofire中有一个会话管理器,您的变量也称为会话管理器。

import Alamofire

class Networking {

  public static let sharedManager: SessionManager = {
      let configuration = URLSessionConfiguration.default
      configuration.timeoutIntervalForRequest=20
      let manager = Alamofire.SessionManager(configuration: configuration, delegate: SessionManager.default.delegate)
      return manager
  }()
}
import Alamofire

class Networking {

  static let APIManager: Session = {
      let configuration = URLSessionConfiguration.default
      configuration.timeoutIntervalForRequest = 20
      let delegate = Session.default.delegate
      let manager = Session.init(configuration: configuration,
                                 delegate: delegate,
                                 startRequestsImmediately: true,
                                 cachedResponseHandler: nil)
      return manager
  }()
}
井疏珂
2023-03-14

您很可能应该检查是否存在身份验证质询委托方法的实现,并检查其调用NSURLSessionAuthChallengeCancelAuthenticationChallenge是否存在。

- (void)URLSession:(NSURLSession *)session didReceiveChallenge:(NSURLAuthenticationChallenge *)challenge
                                             completionHandler:(void (^)(NSURLSessionAuthChallengeDisposition disposition, NSURLCredential * _Nullable credential))completionHandler
冯德宇
2023-03-14

从Alamofire应用程序传输安全检查此文档

尝试在您的应用程序中添加以下内容。plist文件

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

  • 我连接到的服务使用自签名证书。出于开发目的,我不想验证该链。 使用swift 3和Alamofire 4。相应地修正了自动测试系统: 用于连接和禁用计算的代码。 来自转储打印的错误日志 [结果]:失败:错误域=NSURErrorDomain代码=-999“已取消”用户信息={NSERRORFAILINGURKEY=https://sub.url.com/path,NSLocalizedDescri

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

  • 我正在使用iOS 11的AFN网络。我得到的错误如下: 任务 我已经尝试了所有可能的方法。 请帮我解决这个问题。 非常感谢。

  • 问题内容: 我正在寻找一种更简便的方法来针对有故障的块设备测试我的应用程序,这些设备在读取某些块时会产生I / O读取错误。尝试使用具有已知坏块的物理硬盘驱动器很痛苦,我想找到一种软件解决方案(如果存在)。 我确实找到了Linux磁盘故障模拟驱动程序,该驱动程序允许创建一个接口,该接口可以配置为在读取某些范围的块时生成错误,但是它是针对2.4 Linux内核的,而尚未针对2.6更新。 最好是一个l

  • 问题内容: 我正在尝试使用.get方法使用Alamofire调用服务。该请求没有什么特别的,没有任何参数,只是一个Authorization标头。 我在这里有点生气,因为当我在具有相同URL和授权令牌的邮递员上运行请求时,请求工作正常,但是当我使用Alamofire运行应用程序代码时,它将返回此错误: 错误域= NSPOSIXErrorDomain代码= 100“协议错误” UserInfo =