code: func (this *FCGIClient) Do(p map[string]string, req io.Reader) (r io.Reader, err error) {
  	err = this.writeBeginRequest(uint16(FCGI_RESPONDER), 0)
  	if err != nil {
  		return
  	}
  
  	err = this.writePairs(FCGI_PARAMS, p)
  	if err != nil {
  		return
  	}
  
  	body := newWriter(this, FCGI_STDIN)
  	if req != nil {
  		io.Copy(body, req)
  	}
  	body.Close()
  
  	r = &streamReader{c: this}
  	return
  }
docs: // Do made the request and returns a io.Reader that translates the data read
  // from fcgi responder out of fcgi packet before returning it.