3 回答
TA贡献1775条经验 获得超8个赞
通常,应该使用 url 包的值。
下面是一个例子,那做什么,我想你想,玩 了简单为主,并在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
请注意如何将值放入查询字符串中,并为您正确转义。
TA贡献2019条经验 获得超9个赞
您可以使用https://golang.org/pkg/net/url/#QueryEscape转义参数,而不是自己做。
此外,您应该使用https://golang.org/pkg/net/url/#URL来建立您的网址:
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。
如果您的数据以 [] 字符串形式出现:
func ArrayToQuery(values []string) string {
return url.QueryEscape(strings.Join(values, " "))
}
TA贡献1833条经验 获得超4个赞
如果单词中有空格,则需要替换它。
例子
package main
import (
"fmt"
"strings"
)
func main() {
fmt.Println(strings.Replace("bad santa", " ", "+", -1))
}
所以你应该这样做
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 关注
- 198 浏览
添加回答
举报