新闻中心
Golang如何用 net/http 搭建简单服务器_Golang net/http 服务器开发实战
用Golang搭建HTTP服务器只需几行代码,通过net/http包实现路由、处理请求与响应。首先使用http.HandleFunc注册路径及处理函数,再调用http.ListenAndServe启动服务。示例中根路径返回“Hello, 你好!”,并可扩展多个路由如/home和/api/user。支持GET和POST请求处理,分别获取查询参数与表单数据。返回JSON时设置Content-Type为application/json,并用json.NewEncoder编码以优化内存。该方案轻量高效,适合构建简单Web服务或API。

用 Golang 搭建一个简单的 HTTP 服务器非常直接,net/http 包提供了开箱即用的功能,不需要引入第三方框架也能快速实现路由、处理请求和返回响应。
初始化一个基础 HTTP 服务器
最简单的服务器只需要几行代码。调用 http.HandleFunc 设置路径对应的处理函数,再用 http.ListenAndServe 启动服务。
package main
import (
"fmt"
"net/http"
)
func main() {
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
fmt.Fprintf(w, "Hello, 你好!请求路径: %s", r.URL.Path)
})
fmt.Println("服务器启动在 :8080")
http.ListenAndServe(":8080", nil)
}
运行后访问 http://localhost:8080 就能看到返回内容。这个例子中,所有请求都由匿名函数处理,w 用于写入响应,r 是请求对象,可读取路径、参数、Header 等信息。
注册多个路由处理函数
你可以为不同路径注册不同的处理逻辑。每个路径对应一个处理函数,便于组织业务。
http.HandleFunc("/home", homeHandler)
http.HandleFunc("/api/user", userHandler)
func homeHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, "这是首页")
}
func userHandler(w http.ResponseWriter, r *http.Request) {
fmt.Fprintln(w, `{"id": 1, "name": "Tom"}`)
}
这样访问 /home 和 /api/user 会返回不同内容。注意路径匹配是前缀匹配,更精确的路由建议配合 http.ServeMux 或使用第三方路由器如 gorilla/mux。
Whimsical
Whimsical推出的AI思维导图工具
182
查看详情
处理 GET 和 POST 请求
通过判断 r.Method 可区分请求类型。GET 参数用 r.URL.Query() 获取,POST 表单数据用 r.ParseForm() 解析。
func handler(w http.ResponseWriter, r *http.Request) {
if r.Method == "GET" {
query := r.URL.Query().Get("q")
fmt.Fprintf(w, "搜索词: %s", query)
}
if r.Method == "POST" {
r.ParseForm()
name := r.FormValue("name")
fmt.Fprintf(w, "收到名字: %s", name)
}
}
前端可以用表单或 fetch 发送 POST 请求测试。记得设置 Content-Type,比如表单提交时默认是 application/x-www-form-urlencoded。
返回 JSON 响应
返回结构化数据时通常用 JSON。手动拼接字符串容易出错,推荐使用 json.Marshal 并设置 Header。
import "encoding/json"
func apiHandler(w http.ResponseWriter, r *http.Request) {
data := map[string]interface{}{
"code": 0,
"msg": "success",
"data": []string{"Go", "J*a", "Python"},
}
w.Header().Set("Content-Type", "application/json")
json.NewEncoder(w).Encode(data)
}
设置 Content-Type 能让客户端正确解析响应。使用 json.NewEncoder(w).Encode 可直接写入响应流,节省内存。
基本上就这些。net/http 足够轻量又强大,适合搭建 API 服务或简单 Web 应用。不复杂但容易忽略细节,比如错误处理、超时控制和静态文件服务,后续可逐步扩展。以上就是Golang如何用 net/http 搭建简单服务器_Golang net/http 服务器开发实战的详细内容,更多请关注其它相关文章!
# 无锡网站营销推广制作招聘
# 第三方
# 如何使用
# 几行
# 这是
# 你好
# 就能
# 徐州seo快速优化
# 无锡网站建设运营方案
# 多个
# 龙泉网站优化报价
# 营销推广 公众号
# 海口网站安全优化
# 仁怀网络seo推广
# 网站与微信推广
# 南通seo学堂
# 镇海宁波网站推广
# python
# 如何用
# 表单
# 与子
# 表单提交
# 路由
# ai
# 路由器
# app
# 编码
# golang
# go
# json
# 前端
# js
# java
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
AO3同人作品网入口 AO3搜索引擎官网永久地址
微博网页版首页入口 微博电脑端官网登录链接
抖音隐秘迷城小游戏入口_ 抖音冒险解谜小游戏秒玩
J*a里如何实现线程安全的懒加载单例_懒加载单例实现方法解析
b站赚钱渠道_b站收益来源
菜鸟取件码是什么怎么查 最全查询渠道汇总
使用Pandas转换并合并DataFrame:多列映射至统一结构
192.168.1.1管理中心入口 192.168.1.1路由器网页设置平台
TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程
AO3中文官网链接_AO3网页版稳定镜像站
邮政编码查询不到怎么办_邮政编码查询不到的常见原因与对策
实现分段式页面滚动导航:CSS与J*aScript教程
大麦的“候补”是什么意思 大麦候补购票规则【详解】
QQ邮箱官方登录入口_QQ邮箱网页版快捷使用平台
使用 Pandas 高效处理 .dat 文件:字符清理与数据计算
初次安装JDK时环境变量如何正确配置_J*A_HOME与PATH设置规则讲解
《马克思佩恩3》早期版本曝光 UI设计曾多次调整!
如何创建独立于主系统的J*a运行环境_隔离式环境搭建策略
苹果手机如何防止被恶意App追踪
AO3访问入口汇总 AO3网页版同人作品一键直达
深入理解J*aScript Promise异步执行与微任务队列
ArrayList与LinkedList核心操作的Big-O复杂度分析
优化MinIO list_objects_v2 操作的性能瓶颈与最佳实践
在J*a里如何理解依赖关系的方向_依赖方向在模块结构中的作用
自定义Bag-of-Words实现:处理带负号的词汇权重
2025年云电脑操作系统体验 | 无需本地硬件,随时随地使用高性能PC
Win11网速慢怎么解决 Win11网络设置优化解除限速
深入理解rpy2中的类型转换:优化Python对象到R矩阵的映射
厨房不锈钢水槽发黑生锈怎么处理_水槽用可乐+锡纸2分钟抛亮如新
中兴BladeV30怎样用测距估书架层高_iPhone中兴BladeV30测距估书架层高【家装参考】
Composer中的^和~符号代表什么_精通Composer版本号语义化约束
Win11怎么隐藏桌面图标 Win11一键隐藏所有桌面元素及恢复显示
必由学官网快捷入口 必由学网页版在线学习平台
正确连接J*aScript到HTML实现可点击图片与自定义事件处理
sublime怎么覆盖插件的默认快捷键_sublime快捷键优先级与设置
为什么我的微信朋友圈看不到别人的更新_微信朋友圈更新显示异常解决方法
Angular中单选按钮的正确使用与常见陷阱解析
文本文档写html代码怎么运行_文本文档html代码运行步骤【教程】
如何高效处理PHP中的Excel数据导入导出?PortPHP/Spreadsheet助你轻松搞定!
小红书网页版入口链接分享 小红书官网直接进
如何使用纯J*aScript判断Input元素是否在特定类容器内
Word2013如何插入视频和音频媒体_Word2013媒体插入的多媒体支持
PDF文件体积过大处理_PDF压缩技巧详解
Win11输入法不见了怎么办_Windows11恢复语言栏显示方法
海棠账号登录入口_登录海棠账户同步阅读记录
J*a如何使用AtomicInteger控制计数_J*a无锁计数器性能分析
顺丰国际快递查询 国际件官方查询入口
Pandas DataFrame 高效批量赋值:告别循环与笛卡尔积误区
内存疯狂猛猛涨价:主板销量直接腰斩!
处理嵌套交互式控件:前端可访问性指南


2025-11-17
浏览次数:次
返回列表