| // +build go1.8 |
| |
| package request |
| |
| import ( |
| "net/http" |
| ) |
| |
| // NoBody is a http.NoBody reader instructing Go HTTP client to not include |
| // and body in the HTTP request. |
| var NoBody = http.NoBody |
| |
| // ResetBody rewinds the request body back to its starting position, and |
| // sets the HTTP Request body reference. When the body is read prior |
| // to being sent in the HTTP request it will need to be rewound. |
| // |
| // ResetBody will automatically be called by the SDK's build handler, but if |
| // the request is being used directly ResetBody must be called before the request |
| // is Sent. SetStringBody, SetBufferBody, and SetReaderBody will automatically |
| // call ResetBody. |
| // |
| // Will also set the Go 1.8's http.Request.GetBody member to allow retrying |
| // PUT/POST redirects. |
| func (r *Request) ResetBody() { |
| body, err := r.getNextRequestBody() |
| if err != nil { |
| r.Error = err |
| return |
| } |
| |
| r.HTTPRequest.Body = body |
| r.HTTPRequest.GetBody = r.getNextRequestBody |
| } |