Skip to content

Instantly share code, notes, and snippets.

@redbo
Created July 1, 2015 23:45
Show Gist options
  • Save redbo/4e73905895d6ea17153c to your computer and use it in GitHub Desktop.
Save redbo/4e73905895d6ea17153c to your computer and use it in GitHub Desktop.
func DoRequest(req *http.Request, c net.Conn) (*http.Response, error) {
defer req.Body.Close()
dumped, err := httputil.DumpRequestOut(req, false)
if err != nil {
return nil, err
}
if _, err = c.Write(dumped); err != nil {
return nil, err
}
reader := bufio.NewReader(c)
resp, err := http.ReadResponse(reader, req)
if err != nil {
return nil, err
}
if resp.StatusCode == 100 {
io.Copy(c, req.Body)
resp, err = http.ReadResponse(reader, req)
}
return resp, nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment