code: func (w *writer) WriteRequestLine(method, path string, query []string, version string) error {
  	if w.phase != requestline {
  		return &phaseError{requestline, w.phase}
  	}
  	q := strings.Join(query, "&")
  	if len(q) > 0 {
  		q = "?" + q
  	}
  	w.tmp, w.Writer = w.Writer, bufio.NewWriter(w.Writer)
  	_, err := fmt.Fprintf(w, "%s %s%s %s\r\n", method, path, q, version)
  	w.StartHeaders()
  	return err
  }
docs: // WriteRequestLine writes the RequestLine and moves the Conn to the headers phase