Swift开发:未调用resetStreak,服务器却每分钟收到/resetstreak/的GET请求
排查每分钟自动发起的GET请求问题
先定位请求来源
- 查看服务器日志里的
User-Agent字段:这个能直接告诉你请求是来自Swift客户端、浏览器、调试工具还是其他服务。如果是浏览器,大概率是之前开的测试标签页没关,或者有自动刷新插件;如果是陌生的UA,可能是第三方工具或网络服务。 - 用抓包工具(比如Charles、Wireshark)抓本地请求:确认请求的发起IP、端口,进一步锁定是你的App进程还是其他进程在发请求。
Swift客户端代码排查
- 全局搜索代码中所有包含
resetstreak的内容:包括字符串字面量、常量,确认有没有其他地方不小心发起了GET请求——比如拼写错误把POST写成GET,或者复制粘贴时遗留的测试代码。 - 检查
URLSession的相关配置:有没有全局的请求适配器、重试逻辑,导致某个失败的请求被重复触发;有没有未被正确销毁的URLSessionTask实例,在后台持续发起请求。 - 确认注释的定时任务是否彻底停止:即使注释了代码,之前运行的Timer实例如果没调用
invalidate(),可能还在后台运行——可以在App启动时打印所有活跃的Timer,或者检查RunLoop的状态。
服务器与环境排查
- 检查服务器的健康检查/监控配置:如果你的服务器用了Nginx反向代理、Docker容器编排工具,可能有自动健康检查机制,误把
/resetstreak/设为了检查路径,并且用GET请求。 - 排查本地网络工具:比如某些网络监控软件、广告拦截工具、VPN客户端,可能会自动扫描本地服务的接口,导致重复请求。
- 确认是否有其他测试客户端在运行:比如之前启动的模拟器、真机测试实例,可能没完全关闭,在后台持续发起请求。
内容的提问来源于stack exchange,提问作者kovi ressler
相关产品推荐
相关产品推荐

