Skip to content

Instantly share code, notes, and snippets.

@bradfitz
Created November 22, 2019 20:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bradfitz/260851776f08e4bc4dacedd82afa7aea to your computer and use it in GitHub Desktop.
Save bradfitz/260851776f08e4bc4dacedd82afa7aea to your computer and use it in GitHub Desktop.
package main
import (
"bytes"
"io/ioutil"
"log"
"net/http"
"time"
)
var tr = http.DefaultTransport.(*http.Transport).Clone()
func main() {
tr.IdleConnTimeout = 5 * time.Second
for {
req()
time.Sleep(time.Second)
}
}
func req() {
req, _ := http.NewRequest("GET", "https://http1.golang.org/reqinfo", nil)
res, err := tr.RoundTrip(req)
if err != nil {
log.Printf("error: %v", err)
return
}
slurp, err := ioutil.ReadAll(res.Body)
if i := bytes.Index(slurp, []byte("RequestURI:")); i != -1 {
slurp = slurp[:i]
}
log.Printf("got: %v, %q", res.Status, slurp)
}
@odeke-em
Copy link

Please also be prepared to handle the error from slurp on line 28:

        slurp, err := ioutil.ReadAll(res.Body)
        if err != nil { 
                log.Printf("error: %v", err)
                return
        }  
        if i := bytes.Index(slurp, []byte("RequestURI:")); i != -1 {
                slurp = slurp[:i]
        } 

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment