需抓包获取c10(cookie中设备指纹)、token(响应头x-auth-token或请求体,2小时有效期)和cookie(剔除__cf_bm等防护字段);token须动态刷新防401,c10与token需同会话绑定。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

怎么拿到豆包AI的真实请求参数(c10、token、Cookie)
豆包AI官网未开放正式API,所有调用都依赖前端会话态。逆向第一步不是写代码,而是抓到带身份凭证的原始请求——否则后续任何封装都会 401。
- 用
Hifox或Charles抓包,过滤https://www.doubao.com/api/域名,重点看POST /api/chat和POST /api/image/generate这两类请求 - 必须勾选「捕获 HTTPS」并安装根证书;否则看不到
Cookie和请求体里的Authorization字段 -
c10是设备指纹 ID,藏在Cookie里(不是 Header),每次新设备首次访问会生成,不能复用旧值 -
token是短期有效的 Bearer Token,有效期约 2 小时,从响应头X-Auth-Token或请求体中提取,过期后需重新登录触发刷新 - 别直接复制整个 Cookie 字符串——里面含
__cf_bm等 Cloudflare 防护字段,硬塞进代码会触发人机验证
DoubaoClientServiceImpl.java 里为什么要单独管 token 生命周期
因为豆包的 token 不是静态配置项,而是动态刷新的会话凭证;硬编码或只读一次,跑两小时就挂。
-
DoubaoTokenManager.java的核心逻辑是:监听401响应 → 触发模拟登录 → 提取新token→ 更新内存缓存 → 重放原请求 - 不能用定时器轮询刷新,因为 token 刷新本身要走登录流程,而登录接口受频率限制(实测 5 分钟内最多 3 次)
- 注意线程安全:多个并发请求同时遇到 401,必须串行化刷新动作,否则会覆盖彼此的 token 导致雪崩
- 本地调试时建议把
token存进ConcurrentHashMap<string string></string>,key 用c10+ 用户标识拼接,避免不同账号 token 混用
为什么上传图片失败常卡在 DoubaoFileHandler.java 的 multipart 构造环节
豆包的文件上传接口对 boundary 格式、字段顺序、Content-Type 头极其敏感,稍有偏差就返回 400 Bad Request 或静默丢弃。
- 不要用
OkHttp的MultipartBody.Builder默认构造——它会自动加空行和换行符,豆包后端解析器不兼容 - 必须手动拼 raw body:先生成唯一
boundary(如----WebKitFormBoundaryxxx),再严格按顺序写--{boundary}→Content-Disposition: form-data; name="file"; filename="a.png"→Content-Type: image/png→ 空行 → 二进制数据 →--{boundary}-- -
filename必须带扩展名,且与实际内容类型一致;传.jpg但内容是 PNG,会被拦截 - 上传成功后,响应体是 JSON,但字段名是
file_id而非标准的id或url,这个file_id要原样塞进下一步生图请求的image_file_ids数组里
调用 DoubaoImageHelper.generate() 时提示词没生效的三个隐蔽原因
表面看是提示词写得不好,实际大概率是协议层没对齐——豆包图像 API 对输入结构有硬性约定,错一个字段就退化成默认风格。
立即进入“豆包AI人工智官网入口”;
立即学习“豆包AI人工智能在线问答入口”;
-
prompt字段必须是纯字符串,不能是对象或数组;如果传了{"text": "xxx"},服务端直接忽略整段 - 负向提示词必须放在
negative_prompt字段(不是neg_prompt或exclude),且值为字符串,多个词用英文逗号分隔,不能换行或加引号 - 分辨率参数叫
size,可选值只有"1024*1024"、"768*1152"、"1152*768"三种字符串,传数字或其它比例会 fallback 到默认尺寸 - 别信文档里写的“支持 seed”,实测该字段完全不生效;真要控制随机性,只能靠反复重试 +
file_id复用
c10、token、file_id 三者必须来自同一套生命周期,跨 session 拼凑基本必挂。











