- use BytesIO to read http request data instead of StringIO