While working on an integration with the Salesforce REST API, I was working with their batch API and ran into this error message:
Unable to read request: No content to map to Object due to end of input
At first I assumed this was because I wasn't passing something I should have been, but it turned out that I was passing something it didn't like. I removed fields from my payload that I wasn't completely sure about and it suddenly started working for me.
Hope this helps someone else in the same bind.