I have a situation where the requests can't be of application/x-www-form-urlencoded Media Type and so the question.
Interoperability. The OAuth standardizes format and names to ensure different implementations can work together out of the box as much as possible.
Why do you have a situation where you can't use this format? All major programming languages have libraries that implements this format, many as part of standard libraries.