You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Alamofire发起网络请求报AFError错误9,如何排查根因?

AFError错误9的含义

Alamofire的AFError枚举原始值从0开始计数,错误9对应的是requestAdaptationFailed(error:)枚举项,触发时机是请求适配器(RequestAdapter)对原始请求做修改处理的过程中抛出了错误。你之前推测的createURLRequestFailed对应原始值是8,和错误9不匹配。

EventMonitor未回调的原因

你目前实现的四个监听方法均未覆盖请求适配失败的回调场景,对应requestAdaptationFailed错误的EventMonitor监听方法为:

public func request(_ request: Request, didFailToAdaptURLRequest withError: AFError)

实现该方法即可收到对应错误的回调。

调试定位方案

  • 优先排查所有自定义RequestAdapter的adapt方法逻辑,重点检查是否存在参数编码异常、动态拼接请求地址/请求头时空值报错、类型转换失败等问题
  • 直接在请求的响应回调中打印错误的完整信息,获取底层报错原因:
AF.request(你的请求参数).response { result in
    if let afError = result.error as? AFError {
        // 打印错误的完整描述
        print("AFError完整信息:\(afError)")
        // 打印关联的底层错误
        if let underlyingError = afError.underlyingError {
            print("底层错误详情:\(underlyingError)")
        }
    }
}
  • 若以上步骤仍无法定位,可以直接在Alamofire源码中requestAdaptationFailed错误抛出的位置添加断点,触发错误时断点会直接停留,可查看当前上下文的所有参数和调用栈定位问题根源。

内容的提问来源于stack exchange,提问作者Frederic Adda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:24:03