golang发送Form-data格式请求
2020-03-11 本文已影响0人
DifferentMan
在网上没找到合适的代码,发现有multipart库可以直接使用,代码如下:
package main
import (
"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)
}