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

调用Real-Debrid API添加Torrent返回Bad Request,求代码排查

问题排查与修复建议

你的代码存在几个明显问题,导致出现Bad Request响应,逐一说明并给出修复方案:

  1. 请求方法错误
    Real-Debrid的/torrents/addTorrent接口要求使用POST请求,而非你代码里的PutAsync,需将请求方法改为PostAsync。

  2. 缺少认证头
    Real-Debrid所有API接口都需要携带Authorization认证头,格式为Bearer {你的API令牌}。必须在请求中添加该头信息,示例:

this.httpClient.DefaultRequestHeaders.Authorization = 
    new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "你的API令牌");
  1. 错误处理不完善
    仅打印状态码无法定位具体问题,Real-Debrid会在错误响应中返回详细描述,需读取响应内容:
else
{
    string errorBody = await response.Content.ReadAsStringAsync();
    Console.WriteLine($"Error: {response.StatusCode} - {errorBody}");
}
  1. 可选:文件读取优化
    使用File.ReadAllBytes会将整个torrent文件加载到内存,大文件场景下效率较低,可改用StreamContent:
var fileContent = new StreamContent(File.OpenRead(filePath));

修复后的完整代码示例:

public async Task AddTorrent2(string filePath)
{
    if (!File.Exists(filePath))
    {
        throw new FileNotFoundException("File not found", filePath);
    }

    // 添加认证头,替换为你的Real-Debrid API令牌
    this.httpClient.DefaultRequestHeaders.Authorization = 
        new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "你的API令牌");

    var requestContent = new MultipartFormDataContent();
    var fileContent = new StreamContent(File.OpenRead(filePath));
    fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/x-bittorrent");

    requestContent.Add(fileContent, "file", Path.GetFileName(filePath));
    var apiUrl = "https://api.real-debrid.com/rest/1.0/torrents/addTorrent";
    
    var response = await this.httpClient.PostAsync(apiUrl, requestContent);
    if (response.IsSuccessStatusCode)
    {
        string responseBody = await response.Content.ReadAsStringAsync();
        Console.WriteLine("Success! Response: " + responseBody);
    }
    else
    {
        string errorBody = await response.Content.ReadAsStringAsync();
        Console.WriteLine($"Error: {response.StatusCode} - {errorBody}");
    }
}

注意:请将代码中的你的API令牌替换为你在Real-Debrid账户中生成的有效API令牌,令牌可在账户设置的API板块获取。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 17:43:10