news 2026/5/1 8:01:43

脚本 手机跑.简易go服务器

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
脚本 手机跑.简易go服务器

termux 运行即可

package main import ( "log" // 1. 导入日志包 "net/http" // 2. 导入HTTP服务包 ) // 3. 主函数 - 程序入口点 func main() { // 4. 创建文件服务器,服务当前目录 fs := http.FileServer(http.Dir(".")) // 5. 注册路由处理器,使用logRequest中间件包装 http.Handle("/", logRequest(fs)) // 6. 打印服务启动信息 log.Println("Listening on :8080 ...") // 7. 启动HTTP服务器,监听8080端口 log.Fatal(http.ListenAndServe(":8080", nil)) } // 8. logRequest 中间件函数 - 记录每个HTTP请求 // 包装下一个处理器,在请求完成后记录请求方法和路径 func logRequest(next http.Handler) http.Handler { return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { // 9. 创建自定义的ResponseWriter来捕获状态码 lrw := &loggingResponseWriter{ResponseWriter: w, statusCode: 200} // 10. 调用下一个处理器 next.ServeHTTP(lrw, r) // 11. 记录请求信息:方法、路径、状态码 log.Printf("%s %s %d", r.Method, r.URL.Path, lrw.statusCode) }) } // 12. loggingResponseWriter 结构体 - 自定义响应写入器 // 用于捕获HTTP响应的状态码 type loggingResponseWriter struct { http.ResponseWriter // 13. 嵌入标准ResponseWriter statusCode int // 14. 存储响应状态码 } // 15. WriteHeader 方法 - 重写写入响应头的方法 // 在写入状态码时同时记录到结构体中 func (lrw *loggingResponseWriter) WriteHeader(code int) { lrw.statusCode = code // 16. 保存状态码 lrw.ResponseWriter.WriteHeader(code) // 17. 调用原始方法 }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 6:18:28

动态规划解决堆箱子问题:从原理到代码实现

动态规划解决堆箱子问题:从原理到代码实现在算法领域中,堆箱子问题是经典的动态规划应用场景之一。它不仅考察对问题的建模能力,更能深入体现动态规划“分解子问题、存储中间状态、复用最优解”的核心思想。本文将从问题定义出发,…

作者头像 李华
网站建设 2026/5/1 6:04:44

青少年编程竞赛怎么准备?刷题、复盘与社区交流的重要性

青少年编程竞赛怎么准备?刷题、复盘与社区交流的重要性内容概要编程能力评估的核心价值在于促进系统性学习,需注意避免单纯追求证书的倾向;选择评估体系时可关注其权威性、科学性与实用性;竞赛准备需要系统化规划,将能…

作者头像 李华
网站建设 2026/5/1 7:11:36

智能缓存优化测试数据的策略与实践

缓存测试数据:软件测试的新维度 在当今高速迭代的软件开发环境中,测试数据管理已成为影响测试效率与质量的关键因素。智能缓存优化测试数据不再是简单的数据复用技术,而是融合了数据分析、预测算法和资源调度的综合性解决方案。对软件测试从…

作者头像 李华
网站建设 2026/5/1 7:29:12

AI 重构招聘格局:企业应对候选人“AI 升级”的破局之道

AI 重构招聘格局:企业应对候选人“AI 升级”的破局之道AI得贤招聘官校招季的一组数据正悄然改写招聘生态:近 40% 的毕业生在校招期间投递岗位超 50 个,更关键的是,候选人已率先在简历优化、面试准备、自我提升等环节主动运用 AI 工…

作者头像 李华