跳转到内容

HTTP 401 Unauthorized - CC Switch Anthropic

Quick fix

升级 cc-switch 至修复版,以支持 Anthropic 所需的 x-api-key 和 anthropic-version 请求头。

报错原文
fetch_models returns 401 for Anthropic-compatible endpoints due to missing auth headers

cc-switch 的 `fetch_models` 函数在获取模型列表时,默认仅发送 `Authorization: Bearer <key>` 头部。然而,Anthropic 兼容端点(如 `api.anthropic.com` 或第三方提供商)要求必须包含 `x-api-key: <key>` 以及 `anthropic-version: 2023-06-01` 头部。由于缺少这些必要的认证头,服务器返回 HTTP 401 Unauthorized 错误。

该问题已在下游分支(SaladDay/cc-switch-cli)通过引入 `ModelFetchStrategy` 枚举解决,该策略会根据提供商类型发送正确的头部组合:OpenAI 风格使用 Bearer 令牌,Anthropic 风格同时发送 Bearer、x-api-key 和 version 头,Gemini 风格使用 x-goog-api-key。

  1. 确认当前使用的 cc-switch 版本是否已合并上游或 SaladDay 分支的修复。如果使用的是官方版本且未更新,请尝试切换到包含此修复的构建版本(如 SaladDay 分支)。

  2. 如果无法切换版本,作为临时 workaround,请确保你的 Anthropic 配置中正确设置了 API Key,并理解手动 Fetch Models 可能仍会失败,需手动输入模型名称。

ToolClaude Code / Codex
Version3.14.1
PlatformsWindowsmacOSLinux
为什么我配置了本地代理地址还是报 401?
Issue #2514 提到用户配置了本地 CPA 反代地址但报错指向 OpenAI 官方地址。这通常是因为 cc-switch 未能正确应用自定义 baseUrl 配置,或者代理本身未正确处理认证透传。请检查 config 文件中 baseUrl 是否正确设置,并确保代理服务器能正确转发 Anthropic 所需的特定头部(x-api-key 等)。
如何手动指定模型以避免 Fetch Models 失败?
当 fetch_models 因 401 错误失败时,你可以直接在 cc-switch 的配置界面或配置文件中手动输入模型名称(例如 'claude-sonnet-4-20250514'),无需依赖自动获取功能。

这是一个非官方社区 wiki,与 cc-switch 作者及项目本身无隶属关系。内容整理自项目公开的 GitHub issues。本站不分发任何软件。