'Create a request from HTTP bytes data. If the bytes contain
extra data after the request, raise a ValueError.'

@classmethod
def from_bytes(cls, b):

    f = io.BytesIO(b)
    r = cls.from_file(f)
    if (f.tell() != len(b)):
        raise ValueError('The    string    contains    more    data    than    expected')
    return r
