企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
### 发起post请求 > fun NewRequest (methed, urlStr string, body io.Reader) (*Request error) > method,请求方法,如POST > urlStr,请求url > body,参数 ``` package main import ( "fmt" "io/ioutil" "net/http" "strings" ) func main() { // 客户端对象 client := &http.Client{} // 请求体 body := ioutil.NopCloser(strings.NewReader("user=admin&pass=admin")) req, err := http.NewRequest("POST", "http://www.baidu.com", body) if err != nil { fmt.Println(err) } // 打印输出body req_body, err := ioutil.ReadAll(req.Body) if err != nil { fmt.Println(err) } fmt.Println(string(req_body)) // post需要设置请求头 req.Header.Set("Content-Type", "application/") // client.do方法后 会关闭 body resp, err := client.Do(req) if err != nil { fmt.Println(err) } fmt.Println(resp.Header["Content-Type"]) // 响应 Content-Type fmt.Println(resp.Request.Header["Content-Type"]) // 请求Content-Type } ``` ### 使用http包封装的post方法 > func Post(url string, bodyType string, body io.Reader) (resp *Response, err error) > url string,请求的url > bodyType string,内容类型比如 application/x-www-form-urlencoded > body io.Reader,Post参数 ``` package main import ( "fmt" "io/ioutil" "net/http" "strings" ) func main() { // 使用http包的Post方法 response, err := http.Post("http://www.baidu.com", "application/x-www-form-urlencoded", strings.NewReader("user=admin&pass=admin")) if err != nil { fmt.Println(err) } // 结束关闭 body defer response.Body.Close() body, err := ioutil.ReadAll(response.Body) if err != nil { fmt.Println(err) } // 打印响应体 fmt.Println(string(body)) } ``` ### 使用http包的PostForm方法 > fun PostForm (url string, data url.Values) (resp *Response, err error) ``` package main import ( "fmt" "io/ioutil" "net/http" "net/url" ) func main() { // 使用PostForm发起请求 resp, err := http.PostForm("http://www.baidu.com", url.Values{"user": {"admin"}, "pass": {"admin"}}) if err != nil { fmt.Println(err) } // 结束关闭 defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) if err != nil { fmt.Println(err) } // 打印响应体 fmt.Println(string(body)) } ```