当前位置:首页>鸿蒙APP>我竟然发现了原生鸿蒙的一个底层 bug

我竟然发现了原生鸿蒙的一个底层 bug

  • 2026-08-08 18:38:36
我竟然发现了原生鸿蒙的一个底层 bug

我准备连载一个原生鸿蒙开发系列,希望通过系列文章带你一同了解我是如何从0开发一款原生鸿蒙软件的,欢迎订阅关注。

一次持续 12 小时的原生鸿蒙开发调试经历

★ 

我花了一周时间调试一个 HarmonyOS 网络请求问题。模拟器上 2010 条备忘录完整拉取,真机上同一份代码只拿到 175 条,而且全是 PUBLIC——没有一条 PRIVATE。我查了 HTTP 参数、协议版本、gzip 解压、缓冲区大小,甚至写了一篇报告断言问题是 gzip。但最终真相是:@kit.NetworkKit在真机上的 HTTP 请求特征,被服务端识别为"低权限客户端",数据被主动过滤了。

一、背景

我在做一个鸿蒙原生 memos 客户端。后端是 memos v0.29.1 + OpenResty,客户端用 @kit.NetworkKit@ohos.net.http)发送 HTTP 请求。开发时一切顺利——Pura90 模拟器上 2010 条备忘录(含 PRIVATE)完美同步。

然后上真机。

同一份 HAP 包、同一网络、同一份 PAT 鉴权 Token,真机只拿到 175 条。全是 PUBLIC,PRIVATE 一条没有。

平台
备忘录数量
是否包含 PRIVATE
Android(OkHttp)
2010 条
✅ 全部
HarmonyOS NEXT 模拟器
2010 条
✅ 全部
HarmonyOS NEXT 真机 Pura90仅 175 条
❌ 全是 PUBLIC

模拟器正常、真机异常。这个问题本身就是一个反常识的信号。但我当时没在意,以为只是某个参数没对齐。

二、第一轮排查:那些"看似合理"的假设

2.1 HTTP 参数对齐

假设:鸿蒙 app 的 API 调用参数与 Android 版不一致。

差异点
Android(OkHttp)
HarmonyOS(原始)
filter
参数
filter=creator=="users/gujin03"
未传
pageToken
始终传 pageToken=&
首次请求不传
参数顺序
pageSize→pageToken→state→filter
顺序不同

全部对齐后,数据量仍 175。❌

2.2 HTTP 协议版本

假设:HTTP/2 在真机上有兼容问题。

真机 HTTP/2 报 2300999 Internal error,改成 HTTP1_1后稳定了,但数据量还是 175。模拟器依然 2010。

结论:问题不在协议版本,在真机 vs 模拟器的环境差异

2.3 Gzip 解压假设(最有迷惑性的方向)

这是一个让我浪费了大量时间的假设。服务端响应体通过 Transfer-Encoding: chunked传输,我在模拟器上观察 response.result大小约 37KB,真机上只有约 24KB——差了约 40%。

运行环境
response len
同步数据量
模拟器
~37KB
2010 条 ✅
真机
~24KB
175 条 ❌
curl(服务端直接测)
~41KB
2010 条 ✅

我写了一整份问题报告,断言是 @kit.NetworkKit没有自动解压 gzip,导致二进制压缩数据被当作 UTF-8 字符串解码后截断。

但我不放心,决定用 HttpShark(底层 libcurl)在真机上直接发同样的请求做个对比。

三、决定性证据:同一台真机上的对照实验

HttpShark 在同一台 Pura90 真机上、同网络、同 PAT,发送完全相同的 HTTP 请求:

HTTP 客户端
运行位置
返回数据量
有 nextPageToken?
curl(电脑端)
云端服务器
30 条
HttpShark/libcurlPura90 真机30 条
@kit.NetworkKit
Pura90 真机
25 条
❌ 丢失

这个结果直接锁定了问题范围:

  1. ✅ 服务端正常——对真机 IP 返回的数据与电脑端一致
  2. ✅ 真机网络正常——libcurl 在真机上能完整收发
  3. ❌ 问题在 @kit.NetworkKit本身

我当时写下了结论:"@kit.NetworkKit的 gzip 解压有 bug"。这是对的,但不完整。

四、第二次反转:不是 gzip

我准备提交 bug report 之前,决定在 VPS 上直接 curl 内部端口确认一下 gzip 的情况:

ounter(linecurl -sI http://127.0.0.1:5230/api/v1/memo?pageSize=30

结果:

ounter(lineounter(lineContent-Type: application/jsonContent-Length: 37541

没有 Content-Encoding: gzip响应体以 {"memos":明文 JSON 开头。

我追查了两天的 gzip 假设,是错的。

五、根因发现:那 175 条数据全是 PUBLIC

真正的转折点来自一个被我反复忽略的细节——175 条数据全部是 PUBLIC

我回想了服务端 memos 的行为:memos API 会根据客户端权限返回不同 visibility 的数据。如果是匿名或低权限请求,只返回 PUBLIC。

在 VPS 上用 curl 加同样 PAT 验证:

ounter(linecurl -s "https://memos.mysite.xyz/api/v1/memos?pageSize=200"

返回 200 条中,PRIVATE 有 191 条,PUBLIC 仅 9 条。PRIVATE 和 PUBLIC 散布在时间线上

关键推理:如果只是数据截断(如 gzip 未解压),app 应该同时看到 PUBLIC 和 PRIVATE——因为它们在 JSON 中穿插排列。但 app 只看到 PUBLIC,说明服务端在返回数据之前就已经做了 visibility 过滤

根因链至此浮现:

ounter(lineounter(lineounter(lineounter(lineounter(lineounter(lineapp 使用 @kit.NetworkKit 发送 HTTP 请求→ 真机上的 @kit.NetworkKit 实现与模拟器不同→ 发出的 TLS 指纹 / HTTP 请求特征独特→ OpenResty/memos 将其识别为"低权限客户端"→ 服务端主动过滤,只返回 PUBLIC 数据→ 175 条(全是 PUBLIC)

六、深度分析:@kit.NetworkKit的什么行为触发了过滤?

6.1 不是 gzip,是人

gzip 假设之所以有迷惑性,是因为数据量确实少了(24KB vs 37KB)。但这个数据差异是 visibility 过滤的结果——过滤后 JSON 体自然变小了,不是因为解压失败。

6.2 模拟器 vs 真机的差异根源

因素
模拟器
真机
TLS 指纹
模拟系统 OK
真实设备指纹
,被 OpenResty 识别
HTTP 库特征
不被识别
被 memos 检测为"受限类型"
@kit.NetworkKit
实现
完整版
存在实现差异

同一个 API 调用,模拟器上 @kit.NetworkKit请求的 TLS ClientHello 和 HTTP 头顺序,与真机不同。OpenResty 通过 lua-resty-limit-traffic或自定义检测规则,将真机的请求归类为"非标准客户端"。

6.3 为什么 HttpShark(libcurl)正常?

HttpShark 使用 libcurl 作为底层 HTTP 引擎,与鸿蒙 @kit.NetworkKit的网络栈实现完全独立:

  • 不同的 TLS 客户端问候(ClientHello)
  • 不同的 HTTP 头顺序
  • 不同的 ALPN 协商方式

libcurl 的请求特征被 OpenResty 识别为标准桌面/服务端客户端,因此获得了完整权限。

@kit.NetworkKit在真机上的 HTTP 请求特征与标准浏览器/库不同,被服务端误判为低权限客户端——这就是原生鸿蒙的一个底层 bug。

七、解决方案与启示

7.1 终极方案:NAPI libcurl HTTP 模块

既然 @kit.NetworkKit的行为不可控,那就换掉它。通过 NAPI 将 libcurl 编译为原生 .so 模块,在 ArkTS 中调用:

ounter(lineounter(lineounter(lineounter(lineounter(lineArkTS HttpUtil.ts    → curlNet.curlRequest({url, method, caBundle})        → C++ napi 桥接            → curl_easy_perform() 在 worker 线程执行                → 返回 Promise<T> 到 ArkTS
方案
可行性
效果
A. NAPI libcurl HTTP(采用)
✅✅ 彻底解决
B. NAPI zlib 手动解压
根因不是 gzip,打了空靶子
C. 等待鸿蒙修复
时间不确定

最终验证结果:

指标
修复前
修复后
请求次数
~134 次(pageSize=15)
5 次(pageSize=400)
同步耗时
被杀进程(THREAD_BLOCK_6S)
~16 秒
获取数据
175 条 PUBLIC
2004 条
PRIVATE 备忘录
❌ 全部缺失
✅ 全部正常

7.2 经验与教训

  1. 模拟器正常不代表真机正常。@kit.NetworkKit在模拟器和真机上的底层实现不同,这个差异足以导致完全不同的服务端行为。

  2. "数据少了"不等于 gzip。我花了两天追一个 gzip 假象,原因是我只看了"数据量少了"这个表象,却没有验证响应头的 Content-Encoding

  3. 异常数据分布比数据总量更有价值。175 条全是 PUBLIC 这个信号被我忽略了整整两天。如果我在第一天就注意到这个模式,排查时间能缩短 80%。

  4. 抓包工具的对照实验是最有效的诊断手段。HttpShark(libcurl)在同一台真机上正常工作,直接锁定了问题范围。没有这个实验,我可能还在调 CURLOPT 参数。

  5. 错误信息要暴露原始内容。登录页 catch 块用固定文字掩盖 (e as Error).message,让 SSL 证书问题的排查多花了两天。

7.3 实践建议

场景
推荐做法
原因
HarmonyOS 真机 HTTP 请求
NAPI libcurl 替代 @kit.NetworkKit
绕过底层实现差异
涉及权限/visibility 的 API
检查数据分布模式
总量差异可���误导根因方向
真机 vs 模拟器表现不一致
立即上抓包工具
锁定问题范围比调参数更重要
catch 块错误处理
暴露原始错误信息
固定文字会掩盖根本原因

最终,@kit.NetworkKit的 bug 并没有被修复——我换了一条路走。但这件事让我明白一个道理:在真机上看到的现象,如果在模拟器上复现不了,那问题大概率不在你的代码里,而在底层。原生鸿蒙还很年轻,有些 bug 是真实存在的。能做的就是发现它们、记录它们、然后找到自己的路绕过去。

如果你觉得今天这篇有收获,欢迎点赞、在看、转发三连,我们下篇见

在看
收藏

THANKS FOR READING

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-21 15:50:44 HTTP/2.0 GET : https://c.mffb.com.cn/a/501287.html
  2. 运行时间 : 0.323617s [ 吞吐率:3.09req/s ] 内存消耗:4,436.79kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=6700da559c7c7e2c731617a171f8f35e
  1. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/runtime/temp/cefbf809ba1a84190cb04b0cb7abcf79.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/c.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.001046s ] mysql:host=127.0.0.1;port=3306;dbname=c_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001507s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.043918s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000717s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001335s ]
  6. SELECT * FROM `set` [ RunTime:0.000606s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001472s ]
  8. SELECT * FROM `article` WHERE `id` = 501287 LIMIT 1 [ RunTime:0.001885s ]
  9. UPDATE `article` SET `lasttime` = 1787298644 WHERE `id` = 501287 [ RunTime:0.037908s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000643s ]
  11. SELECT * FROM `article` WHERE `id` < 501287 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001172s ]
  12. SELECT * FROM `article` WHERE `id` > 501287 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.014576s ]
  13. SELECT * FROM `article` WHERE `id` < 501287 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.001896s ]
  14. SELECT * FROM `article` WHERE `id` < 501287 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001989s ]
  15. SELECT * FROM `article` WHERE `id` < 501287 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.022443s ]
0.328098s