当前位置:首页 > 编程笔记 > 正文
已解决

Go语言:post方式发送带有form-data参数的http请求

来自网友在路上 172872提问 提问时间:2023-10-31 00:56:13阅读次数: 72

最佳答案 问答题库728位专家为你答疑解惑

一、

const (http_address = "http://yourIP:8080/****"
)// 用url.values方式构造form-data参数
formValues := url.Values{}
formValues.Set("first",firstData)
formValues.Set("second",secondData)
formDataStr := formValues.Encode()
formDataBytes := []byte(formDataStr )
formBytesReader := bytes.NewReader(formDataBytes )//生成post请求
client := &http.Client{}
req, err := http.NewRequest("POST", http_address, formBytesReader )
if err != nil {// handle errorlog.Fatal("生成请求失败!",err)return
}//注意别忘了设置header
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")//Do方法发送请求
resp, err := client.Do(req)

二、

package mainimport ("bytes""fmt""io/ioutil""mime/multipart""net/http"
)func main() {postData := make(map[string]string)postData["anchorId"] = "361155076095561728"postData["searchBegin"] = "2019-03-01 00:00:00"postData["searchEnd"] = "2020-03-10 00:00:00"url := "https:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"PostWithFormData("POST",url ,&postData)
}func PostWithFormData(method, url string, postData *map[string]string){body := new(bytes.Buffer)w := multipart.NewWriter(body)for k,v :=  range *postData{w.WriteField(k, v)}w.Close()req, _ := http.NewRequest(method, url, body)req.Header.Set("Content-Type", w.FormDataContentType())resp, _ := http.DefaultClient.Do(req)data, _ := ioutil.ReadAll(resp.Body)resp.Body.Close()fmt.Println(resp.StatusCode)fmt.Printf("%s", data)
}
查看全文

99%的人还看了

相似问题

猜你感兴趣

版权申明

本文"Go语言:post方式发送带有form-data参数的http请求":http://eshow365.cn/6-28185-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!