golang http urlencode

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/a1368783069/article/details/84967096

背景: 使用python httpserver搭建了一个关键词提取http服务,使用golang开发的服务,通过http请求访问httpserver。但是发现,httpserver接受到的参数的中文值编码错乱。
包括之前在与前端联调其他服务时,发现前端发送的参数为 # 时,后面的参数会丢失, 或者直接curl调用接口时,url中的参数值带有空格是无法将请求发送到服务的。这些问题都是因为没有对进行urlencode,但是在浏览器中输入接口请求url,不会出现以上问题,因为是将urlencode之后的参数发送到服务的。

以下将简要示例下 golang http中urlencode

示例:
主要是使用 "net/url" 进行编码,其说明文档见: https://godoc.org/net/url
只摘取一部分:

url := "http://127.0.0.1/parser?%s"
var rq = url.Values{}
rq.Add("q", q)
resp, _ := http.Get(fmt.Sprintf(url, rq.Encode()))
 defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))

从以上代码中,使用url的values类型,添加请求参数, 并使用该类型的 Encode 方法。

猜你喜欢

转载自blog.csdn.net/a1368783069/article/details/84967096