code: func (s *SpdyRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
  	// TODO what's the best way to clone the request?
  	r := *req
  	req = &r
  	req.Header.Add(httpstream.HeaderConnection, httpstream.HeaderUpgrade)
  	req.Header.Add(httpstream.HeaderUpgrade, HeaderSpdy31)
  
  	conn, err := s.dial(req)
  	if err != nil {
  		return nil, err
  	}
  
  	err = req.Write(conn)
  	if err != nil {
  		return nil, err
  	}
  
  	resp, err := http.ReadResponse(bufio.NewReader(conn), req)
  	if err != nil {
  		return nil, err
  	}
  
  	s.conn = conn
  
  	return resp, nil
  }
docs: // RoundTrip executes the Request and upgrades it. After a successful upgrade,
  // clients may call SpdyRoundTripper.Connection() to retrieve the upgraded
  // connection.