之前写了一篇get方法,现在记录一下post方法。
一、代码实现
(1)直接上代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
package main import ( "fmt" "io/ioutil" "net/http" "strings" ) func HttpPost(url string, param string, mime string) string { resp, err := http.Post(url, mime, strings.NewReader(param)) if err != nil { // handle error return "" } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { // handle error return "" } return string(body) } func main() { fmt.Println(HttpPost("http://localhost:8080/7.23xt/testusers/sayhello", "test=123", "application/x-www-form-urlencoded")) } |
注意有三个参数,url为请求地址,param为请求参数,需要进行strings.NewReader处理转换成流,而mime则是Content-Type,必须进行指定才能正常post。
(2)和get不同的地方
get往往就是先用string拼接访问地址,就可以传递参数了
但是post不行,需要通过param参数来进行传递。而且一定要设定Content-Type,才能正常执行。
二、总结
go中的post还是挺简单的。和get相差也没有多少。