keep the lines when reading into a string
ensureCapacity() is not memory efficient, use the right buffer size when we know it
set the Content-Length for typed String and URL-Encoded POST params
keep the getBytes() value internally rather than the String value
when a POST has no parameters, force the Content-Length to 0