第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

獲取 http 響應(yīng)的 RAW 標(biāo)頭

獲取 http 響應(yīng)的 RAW 標(biāo)頭

Go
桃花長(zhǎng)相依 2023-06-01 09:55:35
如何像這樣將響應(yīng)的原始標(biāo)頭作為字符串獲取:alt-svc: quic=":443"; ma=2592000; v="44,43,39,35"cache-control: private, max-age=0content-encoding: brcontent-type: text/html; charset=UTF-8date: Tue, 08 Jan 2019 06:19:47 GMTexpires: -1server: gwsset-cookie: 1P_JAR=2019-01-08-06; expires=Thu, 07-Feb-2019 06:19:47 GMT; path=/; domain=.google.comset-cookie: SIDCC=ABtHo-HHNcja-cEEFEUXtBmLOdql4RTVMCWKGApEFFb8lWSAqaTF_fi0gDLoWaCzH3ogvEofah0; expires=Mon, 08-Apr-2019 06:19:47 GMT; path=/; domain=.google.com; priority=highstatus: 200set-cookie因?yàn)槲蚁霃捻憫?yīng)標(biāo)頭中獲取多個(gè)值。使用Http.Response.Header.Get("set-cookies")只返回最后一行?;蛘呶以鯓硬拍艿玫蕉鄠€(gè)cookie?
查看完整描述

3 回答

?
侃侃無(wú)極

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊

如果您想要原始標(biāo)頭,則需要編寫一些包裝器,以便在庫(kù)net.Conn解釋原始標(biāo)頭之前為其捕獲原始標(biāo)頭http。

但是您似乎并不真的需要原始標(biāo)頭——甚至根本不需要完整標(biāo)頭。如果您的目標(biāo)只是讀取多個(gè) cookie,那么最簡(jiǎn)單的方法是使用Cookies響應(yīng)中的方法。

這兩者之間的一個(gè)中間選項(xiàng)是讀取Header響應(yīng)的整個(gè)字段。這將顯示完整的標(biāo)頭,但不能保證其順序,并且將進(jìn)行最少的解析(刪除換行符等),因此不能說(shuō)這是真正的“原始”。但是,它確實(shí)通過(guò)將所有標(biāo)頭值存儲(chǔ)在一個(gè)[]string.?因此,就這個(gè)問(wèn)題而言,這應(yīng)該是完全足夠的(盡管Response.Cookies如上所述,會(huì)更容易)。


查看完整回答
反對(duì) 回復(fù) 2023-06-01
?
藍(lán)山帝景

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊

在我看來(lái),往返響應(yīng)的最佳選擇是 httputil#DumpResponse:


package raw


import (

   "bufio"

   "bytes"

   "net/http"

   "net/http/httputil"

)


func encode(res *http.Response) ([]byte, error) {

   return httputil.DumpResponse(res, false)

}


func decode(data []byte) (*http.Response, error) {

   return http.ReadResponse(bufio.NewReader(bytes.NewReader(data)), nil)

}

或者,如果您只想要 cookie,您可以這樣做:


package raw


import (

   "encoding/json"

   "net/http"

)


func encode(res *http.Response) ([]byte, error) {

   return json.Marshal(res.Cookies())

}


func decode(data []byte) ([]http.Cookie, error) {

   var c []http.Cookie

   if e := json.Unmarshal(data, &c); e != nil {

      return nil, e

   }

   return c, nil

}

或者對(duì)于單個(gè) cookie:


package raw


import (

   "encoding/json"

   "net/http"

)


func encode(res *http.Response, name string) ([]byte, error) {

   for _, c := range res.Cookies() {

      if c.Name == name {

         return json.Marshal(c)

      }

   }

   return nil, http.ErrNoCookie

}


func decode(data []byte) (*http.Cookie, error) {

   c := new(http.Cookie)

   if e := json.Unmarshal(data, c); e != nil {

      return nil, e

   }

   return c, nil

}

https://golang.org/pkg/net/http/httputil#DumpResponse


查看完整回答
反對(duì) 回復(fù) 2023-06-01
?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊

標(biāo)準(zhǔn)的 http 庫(kù)默認(rèn)解析標(biāo)頭。
使用 fasthttp(您需要重新編寫路由器和處理程序函數(shù))將使您能夠獲取原始標(biāo)頭。

查看完整回答
反對(duì) 回復(fù) 2023-06-01
  • 3 回答
  • 0 關(guān)注
  • 243 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)