您的位置:首页 >Golang如何处理HTTP请求头详解
发布于2025-11-17 阅读(0)
扫一扫,手机访问
答案:Golang通过net/http库处理HTTP请求Header,使用r.Header.Get读取、w.Header().Set设置响应头,客户端可自定义Header,注意大小写不敏感及设置时机。

在Golang中处理HTTP请求Header非常直接,主要通过标准库net/http来实现。无论是编写HTTP服务器还是客户端,都可以轻松读取、设置和修改Header信息。下面介绍几种常见场景下的使用方法。
在HTTP服务器中,可以通过*http.Request对象的Header字段访问请求头。该字段类型是http.Header,本质是一个map[string][]string,支持同名Header多个值的情况。
常用方法:
func handler(w http.ResponseWriter, r *http.Request) {
userAgent := r.Header.Get("User-Agent")
auth := r.Header.Get("Authorization")
fmt.Fprintf(w, "User-Agent: %s\n", userAgent)
fmt.Fprintf(w, "Auth: %s\n", auth)
}
在返回响应前,使用http.ResponseWriter的Header()方法获取Header map,并调用Set或Add方法设置值。
w.WriteHeader()或写入响应体前设置Header。
func handler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Content-Type", "application/json")
w.Header().Set("X-Custom-Header", "my-value")
w.Write([]byte(`{"message": "ok"}`))
}
使用http.Client发起请求时,可以提前构造*http.Request并设置Header。
req, err := http.NewRequest("GET", "https://api.example.com/data", nil)
if err != nil {
log.Fatal(err)
}
req.Header.Set("Authorization", "Bearer token123")
req.Header.Set("X-Request-ID", "12345")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Fatal(err)
}
defer resp.Body.Close()
处理Header时需注意以下几点:
content-type → Content-Type)Host、Content-Length)由Go自动处理,不建议手动设置Get方法,避免因切片操作出错基本上就这些。Golang的HTTP Header处理简洁明了,只要理解Header是多值映射,并掌握Get、Set等基本方法,就能应对大多数场景。不复杂但容易忽略细节,比如设置顺序和大小写问题。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9