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

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

如何從 URL 中讀取多個參數

如何從 URL 中讀取多個參數

Go
墨色風雨 2022-11-08 17:10:23
我有一個反向代理 API,它讀取 localhost API 調用的參數,然后將這些參數發送到第 3 方 API。如果我只使用一個參數,我就能讓它正常工作。像這樣:http://localhost:8080/path?page=1我希望能夠使用多個參數,但是像這樣:http://localhost:8080/path?page=1&param=x請參閱下面的代碼:此函數捕獲 HTTP 請求,然后將這些參數發送到另一個 API。func (s *Server) getReverseProxy(w http.ResponseWriter, r *http.Request) {    // when I try to append another query in the list a long with page, I get an error     keys, ok := r.URL.Query()["page"]    if !ok || len(keys[0]) < 1 {        log.Println("Url Param 'page' is missing")        return    }    // Query()["key"] will return an array of items,    // we only want the single item.    key := keys[0]    log.Println("Url Param 'page' is: " + string(key))    params := url.Values{        "page[size]":   []string{"100"},        "page[number]": []string{""},    }    u := &url.URL{        Scheme:   "https",        Host:     "url.com",        Path:     "/path",        RawQuery: params.Encode(),    }}無需折射,我在這里錯過了一些簡單的東西嗎?如何為我的函數添加另一個參數來捕獲?
查看完整描述

2 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

下面的代碼行...


keys, ok := r.URL.Query()["page"]

它返回的參數值page,但在[]string類型。要檢索更多參數,只需添加具有不同參數名稱的類似語句。例如:


keysPage, ok := r.URL.Query()["page"]

keysParamA, ok := r.URL.Query()["ParamA"]

keysParamB, ok := r.URL.Query()["ParamB"]

keysParamC, ok := r.URL.Query()["ParamC"]

或者,您也可以使用r.URL.Query().Get(key)返回string類型中的參數值。


page := r.URL.Query().Get("page")

paramA := r.URL.Query().Get("ParamA")

paramB := r.URL.Query().Get("ParamB")

paramC := r.URL.Query().Get("ParamC")


查看完整回答
反對 回復 2022-11-08
?
湖上湖

TA貢獻2003條經驗 獲得超2個贊

r.URL.Query()返回一個map[string][]string


你可以做一個


keys, ok := r.URL.Query()

//browse through keys by

keys["params"]

keys["page"]


查看完整回答
反對 回復 2022-11-08
  • 2 回答
  • 0 關注
  • 186 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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