golang.org/toolchain@v0.0.1-go1.9rc2.windows-amd64/blog/content/http-tracing/trace.go (about)

     1  // +build OMIT
     2  
     3  package main
     4  
     5  import (
     6  	"fmt"
     7  	"log"
     8  	"net/http"
     9  	"net/http/httptrace"
    10  )
    11  
    12  func trace() {
    13  	// START OMIT
    14  	req, _ := http.NewRequest("GET", "http://example.com", nil)
    15  	trace := &httptrace.ClientTrace{
    16  		DNSDone: func(dnsInfo httptrace.DNSDoneInfo) {
    17  			fmt.Printf("DNS Info: %+v\n", dnsInfo)
    18  		},
    19  		GotConn: func(connInfo httptrace.GotConnInfo) {
    20  			fmt.Printf("Got Conn: %+v\n", connInfo)
    21  		},
    22  	}
    23  	req = req.WithContext(httptrace.WithClientTrace(req.Context(), trace))
    24  	if _, err := http.DefaultTransport.RoundTrip(req); err != nil {
    25  		log.Fatal(err)
    26  	}
    27  	// END OMIT
    28  }