code: func (o *FilterProcessScanner) readRequest() (*Request, error) {
  	requestList, err := o.pl.readPacketList()
  	if err != nil {
  		return nil, err
  	}
  
  	req := &Request{
  		Header:  make(map[string]string),
  		Payload: &pktlineReader{pl: o.pl},
  	}
  
  	for _, pair := range requestList {
  		v := strings.SplitN(pair, "=", 2)
  		req.Header[v[0]] = v[1]
  	}
  
  	return req, nil
  }
docs: // readRequest reads the headers of a request and yields an `io.Reader` which
  // will read the body of the request. Since the body is _not_ offset, one
  // request should be read in its entirety before consuming the next request.