code: func (ex *dohExchanger) exchangeWireformat(msg []byte) ([]byte, error) {
  	req, err := http.NewRequest("POST", ex.endpoint.String(), bytes.NewBuffer(msg))
  	if err != nil {
  		return nil, fmt.Errorf("failed to create an HTTPS request: %s", err)
  	}
  
  	req.Header.Add("Content-Type", "application/dns-udpwireformat")
  	req.Host = ex.endpoint.Hostname()
  
  	resp, err := ex.client.Do(req)
  	if err != nil {
  		return nil, fmt.Errorf("failed to perform an HTTPS request: %s", err)
  	}
  
  	// Check response status code
  	defer resp.Body.Close()
  	if resp.StatusCode != http.StatusOK {
  		return nil, fmt.Errorf("returned status code %d", resp.StatusCode)
  	}
  
  	// Read wireformat response from the body
  	buf, err := ioutil.ReadAll(resp.Body)
  	if err != nil {
  		return nil, fmt.Errorf("failed to read the response body: %s", err)
  	}
  
  	return buf, nil
  }
docs: // Perform message exchange with the default UDP wireformat defined in current draft
  // https://datatracker.ietf.org/doc/draft-ietf-doh-dns-over-https