如何在不使用錯誤處理的情況下在 Go 中請求基本身份驗證而不進行重定向?
與傳回 302 重定向的 REST API 互動時,如果沒有自動取得 HTTP Location 標頭可能會很困難重新導向。
解決方案:
作為錯誤處理的替代方法,請考慮為您的HTTP 用戶端使用以下CheckRedirect 函數:
func noRedirect(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }
This簡單的修改通知HTTP 套件不要遵循重定向。相反,它會傳回最後收到的回應,其中包含未封閉的正文且沒有錯誤。
為了說明這一點,這裡是所提供程式碼的更新版本:
package main import ( "fmt" "io/ioutil" "net/http" ) var BASE_URL = "https://api.example.com/v1" var STORMPATH_API_KEY_ID = "xxx" var STORMPATH_API_KEY_SECRET = "xxx" func main() { client := &http.Client{ CheckRedirect: func(req *http.Request, via []*http.Request) error { return http.ErrUseLastResponse }, } req, err := http.NewRequest("GET", BASE_URL+"/tenants/current", nil) req.SetBasicAuth(STORMPATH_API_KEY_ID, STORMPATH_API_KEY_SECRET) resp, err := client.Do(req) // If we get here, it means one of two things: either this http request // actually failed, or we got an http redirect response, and should process it. if err != nil { if resp.StatusCode == 302 { fmt.Println("got redirect") } else { panic("HTTP request failed.") } } defer resp.Body.Close() body, _ := ioutil.ReadAll(resp.Body) fmt.Println(string(body)) }
以上是如何在不處理重定向的情況下在 Go 中執行基本身份驗證?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

在Debian系統中調整Golang的網絡參數可以通過多種方式實現,以下是幾種可行的方法:方法一:通過設置環境變量臨時設置環境變量:在終端中輸入以下命令可以臨時設置環境變量,此設置僅在當前會話有效。 exportGODEBUG="gctrace=1netdns=go"其中,gctrace=1會激活垃圾回收跟踪,netdns=go則使Go使用其自身的DNS解析器而非系統默認的。永久設置環境變量:將上述命令添加到你的shell配置文件中,例如~/.bashrc或~/.profile

在Debian系統上自定義LibOffice的快捷鍵可以通過系統設置進行調整。以下是一些常用的步驟和方法來設置LibOffice的快捷鍵:設置LibOffice快捷鍵的基本步驟打開系統設置:在Debian系統中,點擊左上角的菜單(通常是一個齒輪圖標),然後選擇“系統設置”。選擇設備:在系統設置窗口中,選擇“設備”。選擇鍵盤:在設備設置頁面中,選擇“鍵盤”。找到對應工具的命令:在鍵盤設置頁面中,向下滾動到最底部可以看到“快捷鍵”選項,點擊它會彈出一個窗口。在彈出的窗口中找到對應LibOffice工

在Debian系統上部署Kubernetes(K8s)集群時,需要關注多個關鍵點,以確保集群的穩定性和安全性。以下是一些主要的注意事項:禁用Swap分區:從Kubernetes1.8版本開始,需要禁用Swap分區。可以使用以下命令臨時禁用Swap:sudoswapoff-a若要永久禁用Swap,需編輯/etc/fstab文件,並註釋掉包含“swap”的行。設置內核參數:啟用IPv4轉發:sudotee/etc/sysctl.d/k8s.conf設置網絡參數,如net.bridge.brid

Kubernetes(簡稱K8s)在Debian上部署具有以下優勢:穩定性:Debian是一個穩定且可靠的操作系統,適合作為Kubernetes的運行環境。許多教程推薦使用Debian12作為底層操作系統進行Kubernetes的部署,這表明Debian提供了可靠的運行環境,能夠滿足Kubernetes對操作系統的基本要求。安全性:Debian提供了強大的安全特性,如SELinux和AppArmor,可以進一步增強Kubernetes集群的安全性。通過合理的配置和優化措施,可以確保Kuberne

在Debian系統上部署Kubernetes集群可以通過多種方法實現,以下是利用kubeadm工具在Debian12上設置Kubernetes集群的詳細步驟:預備工作確保你的Debian系統已經更新到最新版本。確保你擁有具有管理員權限的sudo用戶。確保所有節點之間可以通過穩定網絡互相連接。安裝步驟設置主機名和更新hosts文件:在每個節點上,使用hostnamectl命令設置主機名,並在/etc/hosts文件中添加節點IP與主機名的對應關係。禁用所有節點的swap分區:為了讓kubelet正

在Debian系統上搭建Golang環境,可以按照以下步驟進行:1.更新系統包列表首先,確保你的系統包列表是最新的:sudoaptupdate2.安裝GolangDebian的官方倉庫中提供了Golang的安裝包。你可以使用以下命令來安裝:sudoaptinstallgolang-go3.驗證安裝安裝完成後,可以通過以下命令來驗證Golang是否安裝成功:goversion如果安裝成功,你會看到類似如下的輸出:goversiongo1.20.3linux/amd644.設置環境變

在Debian系統上進行JavaScript開發時,可以採用以下最佳實踐來優化開發過程:選擇合適的日誌庫對於Node.js應用,選擇一個功能強大的日誌庫至關重要。常用的日誌庫如Winston、Pino和Bunyan等,提供了豐富的功能,包括日誌級別設置、格式化和存儲。使用正確的日誌級別正確使用日誌級別(如fatal、error、warn、info、debug)可以幫助區分關鍵事件和常規信息事件,有助於後續的故障排除和性能優化。日誌分析工具GoAccess:對於網絡日誌分析,GoAccess是一個

在Debian上更新Kubernetes版本的步驟如下:備份現有集群:在進行任何升級之前,請確保備份您的Kubernetes集群數據。這可以通過使用etcd的備份工具來完成。檢查當前版本:首先,您需要了解當前運行的Kubernetes版本。可以使用以下命令進行檢查:kubectlversion查看可用的更新:訪問Kubernetes官方發布頁面(https://github.com/kubernetes/kubernetes/releases),查看最新的穩定版本,並確認是否支持您的Debian


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

PhpStorm Mac 版本
最新(2018.2.1 )專業的PHP整合開發工具