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

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從反向代理獲取響應(yīng)標(biāo)頭

如何從反向代理獲取響應(yīng)標(biāo)頭

Go
30秒到達戰(zhàn)場 2023-07-31 17:27:44
如何檢測反向代理中的響應(yīng)標(biāo)頭并對其做出反應(yīng)?我正在編寫一個注入反向代理的中間件方法。我確認正在調(diào)用中間件。服務(wù)器設(shè)置一個X-SERVER-VAR值為 的響應(yīng)標(biāo)頭Foo。我需要根據(jù)該值檢測并運行一些代碼。我以為我已經(jīng)閱讀了 ResponseWriter,認為服務(wù)器響應(yīng)應(yīng)該包含該值,但沒有記錄任何內(nèi)容。func SessionHandler(next http.Handler) http.Handler {    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {        log.Printf(w.Header().Get("X-SERVER-VAR"))        next.ServeHTTP(w, r)    })}我用來github.com/gorilla/mux附加這個中間件處理程序。我正在使用類似于下面的代碼來設(shè)置所有內(nèi)容(針對這個問題進行了簡化)。func newProxy(remote string) http.Handler {    proxyurl, err := url.Parse(remote)    if err != nil {        panic(err)    }    proxy := httputil.NewSingleHostReverseProxy(proxyurl)    return proxy}func main() {    r := mux.NewRouter()    r.Use(SessionHandler)    proxy := newProxy("https://www.example.com/")    r.PathPrefix("/").Handler(proxy)    log.Fatal(http.ListenAndServe(":9001", r))}如果中間件無法實現(xiàn),是否可以通過其他方式檢測來自服務(wù)器的響應(yīng)標(biāo)頭?
查看完整描述

1 回答

?
慕姐8265434

TA貢獻1813條經(jīng)驗 獲得超2個贊

您不能期望在設(shè)置響應(yīng)標(biāo)頭之前讀取它們。


改變這個:


func SessionHandler(next http.Handler) http.Handler {

    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

        log.Printf(w.Header().Get("X-SERVER-VAR"))

        next.ServeHTTP(w, r)

    })

}

對此:


func SessionHandler(next http.Handler) http.Handler {

    return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {

        next.ServeHTTP(w, r)

        log.Printf(w.Header().Get("X-SERVER-VAR"))

    })

}


查看完整回答
反對 回復(fù) 2023-07-31
  • 1 回答
  • 0 關(guān)注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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