☰
208个用例、110+端点全实测:coolapk-desktop的酷安API逆向与可用性报告
2026/10/11 22:35:05 网站建设 项目流程
  • 桌面应用
  • 前端
  • 后端
  • 社交

【免费下载链接】coolapk-desktop

酷安跨平台桌面版

项目地址:https://gitcode.com/gh_mirrors/co/coolapk-desktop
点击查看免费下载

coolapk-desktop 是一款基于 Tauri 2、Vue 3 与 Rust 的酷安跨平台桌面客户端。本文基于 2026-08-06 的实测数据,完整拆解它的酷安API逆向过程:8 组探测函数、208 个探测用例、110+ 接口端点的可用性全报告——哪些接口可用、哪些必须登录、哪些已被官方废弃,一目了然。

一、项目速览:这套桌面客户端凭什么跑起来 🖥️

酷安官方并没有提供桌面端,coolapk-desktop 的思路是:直接逆向官方 Android 客户端的接口规范,用 Rust 在后端复现一套"合规"的酷安API调用器,再由 Vue 3 前端消费数据。

因此整个项目有一条清晰的调用链:

  • Rust 层 client.rs:统一构造请求头与签名,封装 270+ 个接口方法;
  • 命令层 commands.rs:把接口能力暴露给前端;
  • 前端层 coolapk.ts(1800+ 行):页面组件直接调用的 TypeScript API 门面。

下面这张首页截图里的动态流、热榜、热门话题、侧边栏榜单,背后分别对应indexV8、dataList、hotSearch等不同端点:

二、逆向起点:从官方 APK 到全量接口文档 🔍

逆向的第一手资料是酷安 Android 客户端的反编译源码(UriActionUtils、AuthUtils、HttpClientFactory等类)。项目将其整理成一份全量接口文档:docs/COOLAPK_API_DOCUMENTATION.md。

有两个细节最影响"能不能调通":

1️⃣ 请求头必须齐。核心请求头见官方原生 API 接口文档的规范表,其中X-Requested-With: XMLHttpRequest决定返回 JSON 还是 HTML;X-App-Device本项目每次启动随机生成,不做固定设备指纹。

2️⃣X-App-Token是动态签名。v3 Token 由"内置密钥片段 + 设备码 MD5 + 时间戳 + AppCode"拼接后经 MD5、取盐、bcrypt(cost=10)生成,实现见 auth.rs。由于 bcrypt 盐存在无效位,时间点前 15 秒内会自动向前探测重试——无需登录即可调用公开接口。

响应结构也很统一:code: 200成功;401未登录;-10001 + forwardUrl=/account/login登录跳转;消息含"验证码"表示触发反爬;API unsupported.则意味着接口已废弃。这几个"暗号"正是后面可用性判定的依据。

三、测试体系:8 组探测函数 × 208 个用例 🧪

可用性结论不是拍脑袋写的,而是由一套可复现的自动化探测体系产出,核心位于 api_tests.rs(约 3000 行):

探测函数职责
probe_readonly_endpoints_smoke只读接口冒烟测试(32 个)
probe_all_documented_endpoints_from_collect全部文档化 API 探测(40 个端点,含可登录检测)
probe_all_write_endpoints_http_method写接口 GET/POST 方法逐一验证(20 个)
probe_extra_endpoints_from_webV8 页面/用户子类型/搜索/通知等补充端点(58 个)
probe_more_endpoints_deepapi2 路由/直连/排序类型等深度探测(25 个)
probe_api2_and_static_endpointsapi2 主机 + 静态资源探测
probe_undocumented_endpointsalbum/headline/favorite 等未文档化端点(31 个)
probe_uwp_collected_endpointsUWP 社区收集的补充端点(17 个)

这些测试标记为#[ignore]联网测试(避免 CI 误触发真实请求),需要时手动运行。此外还有 client_tests.rs 中 70+ 个离线单测(校验请求参数与 APK 契约一致),以及前端 181 个测试文件、900+ 个 Vitest 用例兜底数据解析逻辑。

四、实测结果一览:7 大类接口汇总 📊

以下为2026-08-06 实测的完整汇总,原始表格见 docs/coolapk-api.md:

分类数量✅ 可用🔒 需登录❌ 已废弃🚫 被拦截
基础文档化 API40245101
只读接口冒烟3222352
补充端点(V8/用户/通知等)5845175
深度探测(api2/直连/排序等)25111103
写接口方法探测207(GET)-310(POST)
未文档化端点3121604
UWP 收集补充端点1716100

总览:8 个测试函数、208+ 个探测用例、110+ 个不同接口端点,其中约六成可直接匿名使用,需登录接口全部"可达"(返回 401 而非不存在),说明方法判断正确、带 Cookie 即可用。

五、六大核心发现:这些坑官方文档里查不到 ⚡

1. 写接口只能用 GET,POST 全部 404这是最反直觉的一条:点赞、关注、评论、发帖、私信等全部写接口,用 POST 会返回 404"请求方式错误",GET(带 Query 参数)才是正确姿势。未登录时 GET 返回 401"你还没有登录",恰好可用作"接口可达性"探针。

2. V8 页面必须走/v6/page/dataList/v6/page直连已废弃,热榜、精选、编辑选择、用户页各 Tab 等数据全部要通过dataList配url参数路由获取。

3. 废弃接口清单account/login、sendVcode、loginByMobile全部 403 停用(只剩 Webview OAuth 登录);通知的atme/comment/like/feedlike四个列表端点下线(checkCount仍可用);用户侧pictureList、ershouList、favList、followFeedList也已下线。

4.api2.coolapk.com是可用的备用主机但user/profile在该主机上会重定向到 HTML,需要按接口区分主机。

5. 风控策略清晰可辨未登录请求动态详情会触发验证码拦截;user/replyList被安全策略拦截;静态资源中avatar.coolapk.com、static.coolapk.com正常,image.coolapk.com出现异常状态码(HTTP 567)——前端因此做了多 CDN 兜底。

6. 反向挖出 20+ 个"隐藏"可用接口如album/list、album/search、main/headline、feed/editorChoiceList、apk/giftList、picture/list?tag=等,目前文档里找不到,但实测稳定返回数据。

六、从接口到界面:前端如何消费这些端点 📱

每个"✅ 可用"的端点最终都对应一个页面功能。例如用户空间页:资料头部、统计数字、homeTabCardRows卡片全部来自GET /v6/user/space,而"动态/评分/酷图/二手"各 Tab 由不同列表接口驱动:

数码频道同理:product/categoryList、rating/square等接口数据渲染成产品卡片与评分:

需要登录态的接口(私信、拉黑、收藏、评论等)则依赖 Cookie 登录,抓包与导入方法详见 docs/cookie-guide.md。

七、如何复现这套可用性测试 🛠️

整个过程完全可复现,两条命令即可:

git clone https://gitcode.com/gh_mirrors/co/coolapk-desktop cd coolapk-desktop && npm ci
# 运行全部 8 组 API 探测(需联网,建议带登录 Cookie 测写接口) cargo test --lib coolapk::client::api_tests:: -- --ignored --nocapture

每个探测函数也可单独运行(命令清单见 docs/coolapk-api.md 的"测试方法"一节)。

八、写在最后 ✍️

coolapk-desktop 的价值不只在于"能用的桌面客户端",更在于它用可复现的自动化探测把一套没有公开文档的私有 API 摸成了明牌:208 个用例给出的"可用/需登录/废弃/拦截"四维状态,对任何想接入酷安API的开发者都是现成的地图。

需要提醒的是:本项目为社区维护的非官方客户端,与酷安官方无隶属或合作关系;接口随时可能因官方调整而失效,请务必仅用于学习研究,勿滥用官方接口。

  • 桌面应用
  • 前端
  • 后端
  • 社交

【免费下载链接】coolapk-desktop

酷安跨平台桌面版

项目地址:https://gitcode.com/gh_mirrors/co/coolapk-desktop
点击查看免费下载

相关推荐

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询