3 回答

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個(gè)贊
resp.Header是 類型http.Header。您可以在文檔中看到該類型也是 a map,因此您可以通過(guò)兩種不同的方式訪問(wèn)它:
1) 通過(guò) usinghttp.Header的方法:
serverValue := resp.Header().Get("Server")
dataValue := resp.Header().Get("Date")
如果標(biāo)頭存在,您將獲得它的第一個(gè)值(請(qǐng)記住,單個(gè)標(biāo)頭名稱可能有多個(gè)值);否則你會(huì)得到一個(gè)空字符串。
2) 通過(guò) usingmap的方法:
serverValue, ok := resp.Header()["Server"]
dataValue, ok := resp.Header()["Date"]
如果標(biāo)頭存在,ok將會(huì)是true(即標(biāo)頭存在)并且您將獲得包含該標(biāo)頭的所有值的一段字符串;否則,ok將是false(即標(biāo)題不存在)。
使用您喜歡的任何方法。
如果您需要遍歷所有標(biāo)頭值,您可以使用以下方法:
for name, value := range resp.Header() {
fmt.Printf("%v: %v\n", name, value)
}

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊
你可以使用這樣的函數(shù):
func HeaderToArray(header http.Header) (res []string) {
for name, values := range header {
for _, value := range values {
res = append(res, fmt.Sprintf("%s: %s", name, value))
}
}
return
}
它應(yīng)該返回一個(gè)你想要的數(shù)組。

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超8個(gè)贊
此解決方案適用于go version go1.13 windows/amd64.
來(lái)自http.Request包含Header對(duì)象的請(qǐng)求對(duì)象。我們?cè)趎et/http這里使用包。您可以使用以下方法按名稱獲取所有標(biāo)題的值:
import(
"net/http"
)
type RequestHeaders struct {
ContentType string `json: "content-type"`
Authorization string `json: "authorization"`
}
func getHeaders(r *http.Request) RequestHeaders {
contentType := r.Header.Get("Content-Type")
authorization := r.Header.Get("Authorization")
headers := RequestHeaders{
Content-Type: contentType,
Authorization: authorization}
return headers
}
您可以看到我們正在使用r.Header.Get("Content-Type")方法來(lái)獲取標(biāo)頭的值。
如果標(biāo)題丟失,該Get()方法將返回空字符串。
- 3 回答
- 0 關(guān)注
- 392 瀏覽
添加回答
舉報(bào)