package request import ( "git.xdrm.io/gws/internal/http/reader" "fmt" "io" ) // Parse parses a byte array build a request object func Parse(r io.Reader) (request *T, err error) { /* (1) Get chunk reader */ cr, err := reader.NewReader(r) if err != nil { return nil, fmt.Errorf("Error while creating chunk reader: %s", err) } /* (2) Init request */ req := new(T) /* (3) Parse header line by line */ for { line, err := cr.Read() if err == io.EOF { fmt.Printf("END OF READING\n"); break } if err != nil { return nil, fmt.Errorf("Cannot read from reader: %s", err) } req.parseHeader(line) if req.Err != nil { return nil, fmt.Errorf("Parsing error: %s\n", req.Err); } // fmt.Printf("Read line: %s\n", line) } /* (2) GET {uri} HTTP/{version} ---------------------------------------------------------*/ /* (1) Break apart */ /* (1) Check method */ return nil, nil }