來自Go 的經過身份驗證的HTTP 用戶端請求
在發出需要身份驗證的HTTP 客戶端請求的上下文中,後續請求失敗時會出現常見問題出現401 拒絕存取錯誤。讓我們探索解決此問題的 Golang 解決方案。
在提供的程式碼片段中,用戶端使用 HTTP 基本驗證成功與伺服器進行身份驗證,但在後續請求檢索使用者詳細資訊時面臨挑戰。為了解決這個問題,解決方案在於建立一個自訂的 cookie jar。
Golang 的 HTTP 用戶端不會自動處理 cookie 管理。需要 cookie jar 來儲存和管理跨 HTTP 請求的 cookie。下面的程式碼定義了自訂cookie jar 實作:
type myjar struct { jar map[string] []*http.Cookie } func (p* myjar) SetCookies(u *url.URL, cookies []*http.Cookie) { p.jar [u.Host] = cookies } func (p *myjar) Cookies(u *url.URL) []*http.Cookie { return p.jar[u.Host] }
在main 函數中,我們初始化自訂cookie jar 並將其指派給客戶端的Jar 欄位:
jar := &myjar{} jar.jar = make(map[string] []*http.Cookie) client.Jar = jar
透過合併透過這些更改,Golang 可以成功地跨經過身份驗證的HTTP 請求管理cookie。現在,用戶端將自動將與經過驗證的會話關聯的 cookie 附加到後續請求,確保正確處理詳細資訊請求,而不會出現 401 錯誤。
以上是如何在 Go 中管理經過驗證的 HTTP 用戶端請求的 Cookie?的詳細內容。更多資訊請關注PHP中文網其他相關文章!