AS
curl
Headers:
Authorization: Basic dXNlcjpwYXNz
Content-type: multipart/form-data; boundary=------------------------a2d990deb28046a1
Body:
--------------------------a2d990deb28046a1
Content-Disposition: form-data; name="param1"
test
--------------------------a2d990deb28046a1
Content-Disposition: form-data; name="param2"
test
--------------------------a2d990deb28046a1--
Т.е. нужно отправлять данные не с Content-type
application/x-www-form-urlencoded
, а с multipart/form-data
.Пример:
formData := url.Values{
"param1": {"test"},
"param2": {"test"},
}
body := &bytes.Buffer{}
writer := multipart.NewWriter(body)
for field, value := range formData {
fw, _ := writer.CreateFormField(field)
fw.Write([]byte(value[0]))
}
writer.Close()
req, _ := http.NewRequest(http.MethodPost, url, bytes.NewReader(body.Bytes()))
req.SetBasicAuth(username, password)
req.Header.Set("Content-Type", writer.FormDataContentType())
resp, err := http.DefaultClient.Do(req)