Turns out, Go will automatically set Content-Length
This commit is contained in:
parent
b099bb3037
commit
141388fd23
2 changed files with 8 additions and 29 deletions
|
|
@ -98,16 +98,13 @@ func apiRun(opts *ApiOptions) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
if opts.RequestInputFile != "" {
|
if opts.RequestInputFile != "" {
|
||||||
file, size, err := openUserFile(opts.RequestInputFile, opts.IO.In)
|
file, err := openUserFile(opts.RequestInputFile, opts.IO.In)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
defer file.Close()
|
defer file.Close()
|
||||||
requestPath = addQuery(requestPath, params)
|
requestPath = addQuery(requestPath, params)
|
||||||
requestBody = file
|
requestBody = file
|
||||||
if size > 0 {
|
|
||||||
requestHeaders = append(requestHeaders, fmt.Sprintf("Content-Length: %d", size))
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
httpClient, err := opts.HttpClient()
|
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) {
|
func readUserFile(fn string, stdin io.ReadCloser) ([]byte, error) {
|
||||||
var r io.ReadCloser
|
r, err := openUserFile(fn, stdin)
|
||||||
if fn == "-" {
|
if err != nil {
|
||||||
r = stdin
|
return nil, err
|
||||||
} else {
|
|
||||||
var err error
|
|
||||||
r, err = os.Open(fn)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
defer r.Close()
|
defer r.Close()
|
||||||
return ioutil.ReadAll(r)
|
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 == "-" {
|
if fn == "-" {
|
||||||
return stdin, 0, nil
|
return stdin, nil
|
||||||
}
|
}
|
||||||
|
return os.Open(fn)
|
||||||
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
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -373,7 +373,7 @@ func Test_openUserFile(t *testing.T) {
|
||||||
f.Close()
|
f.Close()
|
||||||
t.Cleanup(func() { os.Remove(f.Name()) })
|
t.Cleanup(func() { os.Remove(f.Name()) })
|
||||||
|
|
||||||
file, length, err := openUserFile(f.Name(), nil)
|
file, err := openUserFile(f.Name(), nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
@ -384,6 +384,5 @@ func Test_openUserFile(t *testing.T) {
|
||||||
t.Fatal(err)
|
t.Fatal(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
assert.Equal(t, int64(13), length)
|
|
||||||
assert.Equal(t, "file contents", string(fb))
|
assert.Equal(t, "file contents", string(fb))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue