在 Go 中迭代 HTTP 客户端响应头
在此示例中,我们迭代服务器在使用 net/http Go 库发出 HTTP 请求后发回的所有 HTTP 头。
iterate_headers_snippet.go
for name, headers := range resp.Header {
// 迭代具有一个名称的所有头(例如 Content-Type)
for _, hdr := range headers {
println(name + ": " + hdr)
}
}完整示例:
iterate_headers_example.go
package main
import (
"net/http"
)
func main() {
// 执行请求
resp, err := http.Get("https://ipv4.techoverflow.net/api/get-my-ip")
if err != nil {
print(err)
return
}
// 此函数结束时清理
defer resp.Body.Close()
// 读取所有头
for name, headers := range resp.Header {
// 迭代具有一个名称的所有头(例如 Content-Type)
for _, hdr := range headers {
println(name + ": " + hdr)
}
}
}此示例将打印,例如:
headers_example.txt
Content-Type: application/octet-stream
Content-Type: text/plain charset=UTF-8
Content-Length: 11
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: GET, OPTIONS
Server: nginx/1.14.0 (Ubuntu)
Date: Sat, 16 Nov 2019 00:27:05 GMTCheck out similar posts by category:
Go
If this post helped you, please consider buying me a coffee or donating via PayPal to support research & publishing of new posts on TechOverflow