3 回答

TA貢獻(xiàn)1775條經(jīng)驗(yàn) 獲得超8個(gè)贊
通常,應(yīng)該使用 url 包的值。
下面是一個(gè)例子,那做什么,我想你想,玩 了簡(jiǎn)單為主,并在http.HandlerFunc形式:
package main
import "fmt"
import "net/url"
import "net/http"
func main() {
baseURL := "https://www.example.org/3/search/movie"
v := url.Values{}
v.Set("query", "this is a value")
perform := baseURL + "?" + v.Encode()
fmt.Println("Perform:", perform)
}
func formHandler(w http.ResponseWriter, r *http.Request) {
baseURL := "https://www.example.org/3/search/movie"
v := url.Values{}
v.Set("query", r.Form.Get("GetSearchKey")) // take GetSearchKey from submitted form
v.Set("api_ley", "YOURKEY") // whatever your api key is
perform := baseURL + "?" + v.Encode() // put it all together
fmt.Println("Perform:", perform) // do something with it
}
輸出: Perform: https://www.example.org/3/search/movie?query=this+is+a+value
請(qǐng)注意如何將值放入查詢字符串中,并為您正確轉(zhuǎn)義。

TA貢獻(xiàn)2019條經(jīng)驗(yàn) 獲得超9個(gè)贊
您可以使用https://golang.org/pkg/net/url/#QueryEscape轉(zhuǎn)義參數(shù),而不是自己做。
此外,您應(yīng)該使用https://golang.org/pkg/net/url/#URL來建立您的網(wǎng)址:
params := fmt.Sprintf("?query=%s&api_key=######", url.QueryEscape("name"))
perform := url.URL{
Scheme: "https",
Host: "api.example.com",
Path: "3/search/movie",
RawQuery: params,
}
fmt.Println(perform) // <- Calls .String()
我建議檢查https://golang.org/doc/effective_go.html。
如果您的數(shù)據(jù)以 [] 字符串形式出現(xiàn):
func ArrayToQuery(values []string) string {
return url.QueryEscape(strings.Join(values, " "))
}

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
如果單詞中有空格,則需要替換它。
例子
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Replace("bad santa", " ", "+", -1))
}
所以你應(yīng)該這樣做
func main() {
a := []string{"bad", "santa"}
fmt.Printf("%q\n", a)
j := ArrayToString(a)
strings.Replace(j, " ", "+",-1)
fmt.Printf("%q\n", j)
}
這是 Go 文檔的鏈接 - https://golang.org/pkg/strings/#Replace
- 3 回答
- 0 關(guān)注
- 221 瀏覽
添加回答
舉報(bào)