-
Notifications
You must be signed in to change notification settings - Fork 3
/
header.go
executable file
·88 lines (75 loc) · 2.03 KB
/
header.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
// Package httpKit
/*
请求头 || 响应头
key: 不区分大小写
*/
package httpKit
import (
"net/http"
)
// AddHeader
/*
e.g.
header := make(map[string][]string)
fmt.Println(header) // map[]
httpKit.AddHeader(header, "k", "0")
fmt.Println(header) // map[K:[0]]
httpKit.AddHeader(header, "k", "1")
fmt.Println(header) // map[K:[0 1]]
*/
func AddHeader(header http.Header, key, value string) {
header.Add(key, value)
}
// SetHeader
/*
e.g.
header := make(map[string][]string)
fmt.Println(header) // map[]
httpKit.AddHeader(header, "k", "0")
fmt.Println(header) // map[K:[0]]
httpKit.AddHeader(header, "k", "1")
fmt.Println(header) // map[K:[0 1]]
httpKit.SetHeader(header, "k", "2")
fmt.Println(header) // map[K:[2]]
httpKit.SetHeader(header, "k", "")
fmt.Println(header) // map[]
*/
func SetHeader(header http.Header, key, value string) {
if value == "" {
DelHeader(header, key)
return
}
header.Set(key, value)
}
// GetHeader
/*
PS: 存在多个值的话([]string),返回第一个值.
@param key 不存在对应值的话,将返回 ""
*/
func GetHeader(header http.Header, key string) string {
return header.Get(key)
}
// GetHeaderValues
/*
@param key 不存在对应值的话,将返回 nil
*/
func GetHeaderValues(header http.Header, key string) []string {
return header.Values(key)
}
func DelHeader(header http.Header, key string) {
header.Del(key)
}
// GetUserAgent 获取http请求头中"User Agent"的值.
/*
参考: https://www.sunzhongwei.com/golang-gin-for-user-agent-in-http-request-header-value
e.g.
Chrome浏览器: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36
Safari浏览器: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/15.5 Safari/605.1.15
*/
func GetUserAgent(header http.Header) string {
return GetHeader(header, "User-Agent")
}
// GetOrigin 获取请求的Origin
func GetOrigin(header http.Header) string {
return GetHeader(header, "Origin")
}