亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

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

如何在golang中為請求和重定向添加值

如何在golang中為請求和重定向添加值

Go
Qyouu 2022-05-23 17:57:41
我有 API 網關和用戶服務微服務。當請求到達 API 網關時,我需要在Rediret()它之前添加一些值給用戶服務。func main(){    http.HandleFunc("/login", userLogin)}func userLogin(res http.ResponseWriter, req *http.Request) {    uuid := generateUUID()    // How to add UID to request?    http.Redirect(res, req, userservice, http.StatusSeeOther)}為此,我使用了此處描述的方法。form,_ := url.ParseQuery(req.URL.RawQuery)form.Add("uid", "far")req.URL.RawQuery = form.Encode()這只是在用戶服務的登錄路徑處停止。我也嘗試使用:req.Form.Set("uid","foo")這讓人感到恐慌。http:恐慌服務 127.0.0.1:55076:分配給 nil 地圖中的條目我的用戶服務:func main(){    http.HandleFunc("/login", UserLogin)}func UserLogin(res http.ResponseWriter, req *http.Request) {     req.ParseForm()     requestID := req.FormValue("uid")     userID := req.FormValue("userid")     if userID =="sachith"{        sendRequest(requestID)        http.Redirect(res, req, "http://localhost:7070/home", http.StatusSeeOther)    }有沒有辦法為我們收到的路由請求添加值并將其重定向到另一個服務?
查看完整描述

1 回答

?
守著星空守著你

TA貢獻1799條經驗 獲得超8個贊

要將查詢參數添加到重定向位置,您只需將它們添加到函數的url參數即可Redirect。


此外,您不應修改*http.Request傳入的參數Redirect以指定目標位置,這不是它的用途。1st,修改它只會對相對重定向產生影響,這不是你在這里想要做的。2nd,url是為此目的而指定的,并且可以始終用于執行相對和絕對重定向。這里沒有與設計相反的優勢。


apigateway/main.go


package main


import (

    "net/http"

)


func main() {

    http.HandleFunc("/login", loginHandler)

    http.ListenAndServe(":8080", nil)

}


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

    uuid := "911cf95b-6b3f-43fd-b695-c80c79145c51" // generate uuid

    http.Redirect(w, r, "http://localhost:8081/login?user_id="+uuid, http.StatusSeeOther)

}

userservice/main.go


package main


import (

    "net/http"

)


func main() {

    http.HandleFunc("/login", loginHandler)

    http.ListenAndServe(":8081", nil)

}


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

    uuid := r.URL.Query().Get("user_id")

    w.Write([]byte(uuid))

}


查看完整回答
反對 回復 2022-05-23
  • 1 回答
  • 0 關注
  • 312 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號