Turns out, Go will automatically set Content-Length

This commit is contained in:
Mislav Marohnić 2020-06-10 16:29:50 +02:00
parent b099bb3037
commit 141388fd23
2 changed files with 8 additions and 29 deletions

View file

@ -98,16 +98,13 @@ func apiRun(opts *ApiOptions) error {
}
if opts.RequestInputFile != "" {
file, size, err := openUserFile(opts.RequestInputFile, opts.IO.In)
file, err := openUserFile(opts.RequestInputFile, opts.IO.In)
if err != nil {
return err
}
defer file.Close()
requestPath = addQuery(requestPath, params)
requestBody = file
if size > 0 {
requestHeaders = append(requestHeaders, fmt.Sprintf("Content-Length: %d", size))
}
}
httpClient, err := opts.HttpClient()
@ -198,34 +195,17 @@ func magicFieldValue(v string, stdin io.ReadCloser) (interface{}, error) {
}
func readUserFile(fn string, stdin io.ReadCloser) ([]byte, error) {
var r io.ReadCloser
if fn == "-" {
r = stdin
} else {
var err error
r, err = os.Open(fn)
if err != nil {
return nil, err
}
r, err := openUserFile(fn, stdin)
if err != nil {
return nil, err
}
defer r.Close()
return ioutil.ReadAll(r)
}
func openUserFile(fn string, stdin io.ReadCloser) (io.ReadCloser, int64, error) {
func openUserFile(fn string, stdin io.ReadCloser) (io.ReadCloser, error) {
if fn == "-" {
return stdin, 0, nil
return stdin, nil
}
r, err := os.Open(fn)
if err != nil {
return r, 0, err
}
s, err := os.Stat(fn)
if err != nil {
return r, 0, err
}
return r, s.Size(), nil
return os.Open(fn)
}

View file

@ -373,7 +373,7 @@ func Test_openUserFile(t *testing.T) {
f.Close()
t.Cleanup(func() { os.Remove(f.Name()) })
file, length, err := openUserFile(f.Name(), nil)
file, err := openUserFile(f.Name(), nil)
if err != nil {
t.Fatal(err)
}
@ -384,6 +384,5 @@ func Test_openUserFile(t *testing.T) {
t.Fatal(err)
}
assert.Equal(t, int64(13), length)
assert.Equal(t, "file contents", string(fb))
}