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

Net8控制台应用使用Refit调用API报424(Failed Dependency)错误求助

.NET 8 + Refit 7.0.0调用API出现424 (Failed Dependency)错误排查

我创建了一个.NET 8控制台应用,使用Refit 7.0.0库调用登录API时触发错误:

API Request failed: Response status code does not indicate success: 424 (Failed Dependency)

谷歌上没找到相关信息,不清楚这个错误指向的依赖问题是什么,完整代码如下:

using Refit;
using System.Text.Json.Serialization;

var request = new SigninRequest
{
    FireBaseToken = "eyJhbGciOiJSUzI1NiIsImtpZCI6IjE2OTgxNjE0MDEwOTYxNjU5g1MTMxMTM1MzAzODU1NDUyNzU2NjciLCJ0eXAiOiJKV1QCJhbGciOiJSUzI1NiIsImtpZCI6IjE2OTgxNNjU5ODg1MTMxMTM1MzAzODU1NDUyNzU",
    Password = "Password",
    Email = "tester@mail.ru",
    AppVersion = 21
};


try
{
    var value = await RestService.For<ISignin>("https://api.smartex.kg/courier").SigninAsync(request).ConfigureAwait(false);
}
catch (Exception ex)
{
    Console.WriteLine($"API Request failed: {ex.Message}");
    Console.WriteLine($"HTTP Status Code: {ex.StackTrace}");
}


public interface ISignin
{
    [Post("/login")]
    public Task<Response> SigninAsync([Body]SigninRequest request);
}

public class Response
{
    [JsonPropertyName("type")]
    public int Type { get; set; }

    [JsonPropertyName("error")]
    public string? Error { get; set; }
}

public class SigninRequest
{
    [JsonPropertyName("email")]
    public string Email { get; set; } = "";

    [JsonPropertyName("fireBaseToken")]
    public string FireBaseToken { get; set; } = "";

    [JsonPropertyName("appVersion")]
    public int AppVersion { get; set; } = 21;

    [JsonPropertyName("password")]
    public string Password { get; set; } = "";
}

错误原因分析

HTTP 424 (Failed Dependency)状态码的核心含义是当前请求的成功依赖于某个前置请求的完成,但该前置请求失败。结合你的场景,可能的触发原因包括:

  • API内部依赖的第三方服务(如Firebase验证、用户数据库)调用失败,导致登录流程无法继续
  • 请求参数存在问题(如Token无效、版本号不兼容),引发API内部依赖环节出错

排查步骤

  1. 验证Firebase Token有效性
    你传入的FireBaseToken可能已过期、格式错误,或者与API要求的签名/受众不匹配,建议用Firebase官方工具验证Token的合法性。

  2. 捕获Refit的详细错误响应
    当前代码仅捕获通用异常,无法获取API返回的具体错误详情。改用ApiException(Refit专属异常)可以读取响应体内容,API通常会在响应体中说明具体的依赖失败原因:

    try
    {
        var value = await RestService.For<ISignin>("https://api.smartex.kg/courier").SigninAsync(request).ConfigureAwait(false);
    }
    catch (ApiException ex)
    {
        Console.WriteLine($"API Request failed: {ex.Message}");
        Console.WriteLine($"HTTP Status Code: {ex.StatusCode}");
        // 获取响应体中的具体错误信息
        var responseContent = await ex.GetContentAsStringAsync();
        Console.WriteLine($"Response Content: {responseContent}");
    }
    catch (Exception ex)
    {
        Console.WriteLine($"Unexpected error: {ex.Message}");
    }
    
  3. 检查请求参数合法性
    确认AppVersion是否符合API要求的版本范围(比如是否需要升级到指定版本),同时验证Email和Password是否与测试环境的用户数据匹配。

  4. 确认API服务状态
    如果调用的是第三方API,可联系服务提供商确认其内部依赖服务(如Firebase集成、数据库节点)是否正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:46:31