It think that to become a standard, the interface must support streamable bodies : you can't just expect an object to be castable to string. Imagine you're transferring a 100MB file in the body, it won't fit in memory, so this must accept a stream as well.
An alternative would be to create a `MessageBody` interface, that would expose methods such as `read()` etc.