Encountered the same and after digging in, if you look at cornice.util.extract_request_data
function, you'll see that its trying to load the body as json json.loads(request.body)
so you need to post your data as json:
curl -H "Content-Type: application/json" -X POST http://localhost:6543/foo -d '{"foo": "bar"}'
HTH