Skip to content

Commit 98f59aa

Browse files
author
Steven Arnott
authored
Add SetMultipartFormData func to Request (#337)
1 parent 314627a commit 98f59aa

File tree

2 files changed

+23
-0
lines changed

2 files changed

+23
-0
lines changed

request.go

+10
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,16 @@ func (r *Request) SetFileReader(param, fileName string, reader io.Reader) *Reque
322322
return r
323323
}
324324

325+
// SetMultipartFormData method allows simple form data to be attached to the request as `multipart:form-data`
326+
func (r *Request) SetMultipartFormData(data map[string]string) *Request {
327+
328+
for k, v := range data {
329+
r = r.SetMultipartField(k, "", "", strings.NewReader(v))
330+
}
331+
332+
return r
333+
}
334+
325335
// SetMultipartField method is to set custom data using io.Reader for multipart upload.
326336
func (r *Request) SetMultipartField(param, fileName, contentType string, reader io.Reader) *Request {
327337
r.isMultiPart = true

request_test.go

+13
Original file line numberDiff line numberDiff line change
@@ -714,6 +714,19 @@ func TestMultiPartUploadFileNotOnGetOrDelete(t *testing.T) {
714714
assertEqual(t, "multipart content is not allowed in HTTP verb [DELETE]", err.Error())
715715
}
716716

717+
func TestMultiPartFormData(t *testing.T) {
718+
ts := createFormPostServer(t)
719+
defer ts.Close()
720+
resp, err := dclr().
721+
SetMultipartFormData(map[string]string{"first_name": "Jeevanandam", "last_name": "M", "zip_code": "00001"}).
722+
SetBasicAuth("myuser", "mypass").
723+
Post(ts.URL + "/profile")
724+
725+
assertError(t, err)
726+
assertEqual(t, http.StatusOK, resp.StatusCode())
727+
assertEqual(t, "Success", resp.String())
728+
}
729+
717730
func TestMultiPartMultipartField(t *testing.T) {
718731
ts := createFormPostServer(t)
719732
defer ts.Close()

0 commit comments

Comments
 (0)